centos7中配置nginx+php-fpm+swoole+mysql环境教程
centos7在数据中心服务器中使用较为广泛,为了方便用户配置环境,本文介绍了在centos7系统下部署nginx+php-fpm+swoole+mysql环境的详细步骤。
一、运行nginx
1、新增yum源
vim /etc/yum.repos.d/nginx.repo
然后将下面的内容复制进去:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
然后保存“/etc/yum.repos.d/nginx.repo”文件后,我们就使用 yum 命令查询一下我们的 nginx 的 yum 源配置好了没有。
2、安装和运行
yum list |grep nginx
yum -y install nginx
rpm -q nginx //当然你还可以使用命令查一下究竟是否安装完成。
vim /etc/nginx/conf.d/default.conf //默认的nginx配置文件地址
3、防火墙的设置
#systemctl [start|stop|restart|status|disable] firewalld.service //防火墙
//允许某端口放行
# firewall-cmd --permanent --add-port=3389/tcp
需要留意的是在编写完规则之后,要运行--reload参数
# firewall-cmd --reload
查询端口号80 是否开启:firewall-cmd --query-port=80/tcp
永久开放80端口号:firewall-cmd --permanent --zone=public --add-port=80/tcp
移除80端口号:firewall-cmd --permanent --zone=public --remove-port=80/tcp
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
二、PHP安装
wget http://cn2.php.net/get/php-7.2.8.tar.gz/from/this/mirror
tar zxf mirror
cd php-7.2.8
//报错
libxml2 not found. Please check your libxml2 installation
方法:
rpm qa|grep libxml2 //查找libxml2库
yum install -y libxml2-devel
./configure -enable-fpm
make&&make install
php -v //测试
4、php-fpm的安装和设置
A、用户组
groupadd www
useradd -g www www
/usr/local/sbin/php-fpm
B、查看php-fpm是否运行
netstat -tlnp|grep 9000
ps -ef|grep php-fpm
systemctl [start|stop|restart|status|disable] nginx.service //nginx是否运行
C、配置nginx配置文件
vim /etc/nginx/conf.d/8080.conf //内容如下
server {
listen 8080;
server_name localhost;
location ~ \.php?.*$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存,或者可以修改default.conf文件,为如下
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ~ \.php?.*$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
在匹配规则中去开了PHP的相关规则,新增了root目录,修改了fastcgi_param,并且增加了include:fastcgi_params;
systemctl [start|stop|restart|status|disable|enable] nginx.service //nginx是否运行
chkconfig nginx on //转发为默认开机启动
并且可以通过
journalctl -xe
该命令调试nginx错误,最新的输出在最下面,我第一次添加了8011端口的服务,报出无法使用该端口,原因也是未知,最后换成8080nginx才正常启动。
D、php-fpm的自启动
vim /lib/systemd/system/php-fpm.service //帮下面内容放到里面,添加快捷启动项在system
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target
将php-fpm设为系统启动服务
systemctl start php-fpm.service
systemctl enable php-fpm.service
systemctl list-units --type=service #查看所有已启动的服务
三、swoole的加载
wget https://github.com/swoole/swoole-src/archive/v4.0.0.tar.gz
tar zxf v4.0.0.tar.gz
cd swoole-src-4.0.0
phpize //是否拥有编译环境
./configure //安装包是否完整
make&&make install //进行安装
由于php默认编译的时候并没有拷贝php。ini,所以我们需要拷贝一下。链接swoole和php
cp php.ini-development /usr/local/lib/php.ini
添加
extension=swoole
重启服务
service php-fpm restart
service nginx restart
测试是否是否安装成功
php -m|grep swoole
php -r "echo phpinfo();"|grep swoole
四、mysql的安装
1.yum上面的软件版本更新太旧,所以查看系统里面没有mysql 的repo
yum repolist all | grep mysql
下载 mysql-community-release-el7-5.noarch.rpm 的 YUM 源:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
再看看是否存在mysql的repo
yum repolist enabled | grep mysql
可以看到已经有了
查看有没有安装包:
yum list mysql*
安装mysql
yum -y install mysql mysql-server mysql-devel
,如果出现
错误:GPG-KEY-mysql 的无效 GPG 密钥….
yum makecache //元数据缓存已建立
建议更换rpm源,重新安装
mysql内容管理
use mysql;
update user set password=password('123456') where user='root';
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;
mysql自启动
如果systemctl enable mysql.service出现软link错误,尝试将mysql放在启动文件中。
放在/etc/rc.d/rc.local 里面,最后一行即可。
/usr/sbin/mysqld --user=mysql
以上就为如何在centos7系统中部署nginx+php-fpm+swoole+mysql环境全部教程。