1. CentOS7环境准备
本地电脑是win10, 想搭建一个php的环境进行开发,所以用vagrant虚拟机来搭建
环境信息
CentOS7 | centos/7 |
nginx | N/A |
MariaDB | 10.4 |
PHP | 7.2 |
我是用的vagrant box, 用的这个centos7 box (https://app.vagrantup.com/centos/boxes/7).
1.1. 根据这个box的页面说明启动它。
vagrant init centos/7
vagrant up
1.2. 启动了之后直接ssh连接。
该box的root默认密码是vagrant.
我是直接用xShell工具连接的(ssh连接端口看启动日志,默认是2222),连接之后是需要输入账号(vagrant)和密匙(public key)。
密匙是在启动路径下的.vagrant/machines/default/virtualbox/private_key。然后登陆即可。
1.2.1. 如果想用账号密码登陆。
找到/etc/ssh/sshd_conf,把里面的值PasswordAuthentication改成yes.
保存后重启sshd服务。
service sshd restart
1.2.2. yum添加代理(proxy)
有时候用yum安装可能比较忙,可以加上代理网络可能就会快一点。
加代理配置可以在/etc/yum.conf
2. 安装Nginx
安装nginx参考的文档
How To Install Linux, Nginx, MySQL, PHP (LEMP) stack On CentOS 7 | DigitalOcean
直接根据文档的命令一步步操作即可。
# add the CentOS7 EPEL repository
sudo yum install epel-release
# install nginx
sudo yum install nginx
# start the nginx service
sudo systemctl start nginx
# enable start nginx on boot with systemd
sudo systemctl enable nginx
安装好了之后直接浏览器localhost访问即可(注意因为是virtual box,需要guest的80端口forward到host的80端口)。
3. 安装MariaDB
安装MariaDB仍旧参考的文档
How To Install Linux, Nginx, MySQL, PHP (LEMP) stack On CentOS 7 | DigitalOcean
这个安装后的MariaDB版本不符合我的需求(我要安装10.4)
如何安装指定版本的MariaDB?
去MariaDB的官方网站(Download MariaDB Server - MariaDB.org)选择你要安装的版本,然后根据步骤一步步的安装
安装好后用命令查看mysql的版本
mysql --version
然后运行数据库的初始化配置(设置root密码)。
sudo mysql_secure_installation
如果想要在win10里面访问该数据库,需要把guest的数据库端口映射出去。
4. 安装PHP
4.1. 安装PHP
仍旧参考的文档。How To Install Linux, Nginx, MySQL, PHP (LEMP) stack On CentOS 7 | DigitalOcean
相关命令如下
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# To check which PHP 7+ releases are available in the Remi repository
sudo yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64
# To enable the correct Remi package to get PHP 7.2 installed
sudo yum-config-manager --enable remi-php72
# install php and its relevant extensions
sudo yum install php php-mysqlnd php-fpm
# check php version
php -v
# check php extensions
php -m
安装php相关的extensions。
# search available extensions for php72
sudo yum search php72
# install extensions of php
sudo yum install php-{extension names}
e.g. install php bcmatch extension
sudo yum install php-bcmatch
$install php extensions based on your requirements. e.g.
sudo yum install php-bcmath php-xmlwriter libicu-deve libicu-devel php-intl php-mbstring php-pear php-gd php-soap php-pecl-zip
4.2. 配置php-fpm
php fpm的配置文件/etc/php-fpm.conf。查看该文件可以看到它默认会加载/etc/php-fpm.d/*.conf下面的配置文件。文件夹/etc/php-fpm.d下面默认只有www.conf文件。
打开/etc/php-fpm.d/www.conf文件,更改如下内容。
(进程的用户/组 我为了开发方便,改成的vagrant,正常情况下应该根据文档改成nginx)
启动php fpm
#start php-fpm
sudo systemctl start php-fpm
#eanble start php-fpm on boot with systemd
sudo systemctl enable php-fpm
5. 配置nginx处理php页面
仍旧参考文档第四步即可
How To Install Linux, Nginx, MySQL, PHP (LEMP) stack On CentOS 7 | DigitalOcean
6. 导出这个vagrant box
在win10系统下面,打开powershell,执行以下命令导出vagrant box。
vagrant package --output {your virtualbox name, e.g. local_lemp.box}
这个box导入,vagrant up的时候遇到如下问题:
需要执行如下命令进行更新
vagrant plugin install vagrant-vbguest --plugin-version 0.21
执行成功后如下信息。会默认把当前路径映射到虚拟机的/vagrant路径下面。