ubuntu16.04 安装php7.2 Nginx Mysql5.7
安装php7.2
可以通过 apt list | grep php7 命令查看是否有php7.2的包,ubuntu16.04默认是有7.0的。
添加源
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update
再次执行 apt list | grep php7 命令就可以发现列表中已经包含有7.2版本的包了。
安装php7.2
apt-get install php7.2
nginx使用php需要安装php7.2-fpm, 和一些php插件
sudo apt-get install php7.2-mysql php7.2-fpm php7.2-curl php7.2-xml php7.2-gd php7.2-bcmath php7.2-mbstring php-memcached php7.2-zip
安装完成,执行 php --version 查看是否安装成功
上述安装php命令会自动安装apache2服务,可以通过 service apache2 status 查看
卸载apache2,执行以下命令
service apache2 stop
apt remove apache2*
apt autoremove
安装Nginx
apt install nginx
service nginx status #查看状态
配置php-fpm
有时候安装完成后不知道安装到什么地方啦可以使用下面命令查找下
whereis php-fpm
第一种方法修改配置监听9000端口来处理nginx的请求(这种方法一般在windows上使用)
修改 /etc/php/7.2/fpm/pool.d/www.conf 文件找到第36行,注释并添加一行
;listen = /run/php/php7.2-fpm.sock
listen = 127.0.0.1:9000
修改nginx配置/etc/nginx/sites-available/default (这个地方是默认的配置文件,也可以加在其他地方)
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
另一种方法linux下使用sock方法速度会更快,不修改 /etc/php/7.2/fpm/pool.d/www.conf 文件,使用里面 /run/php/php7.2-fpm.sock 这样的路径,后面nginx也要设置成这种格式 fastcgi_pass unix:/run/php/php7.2-fpm.sock;
配置nginx
修改站点根目录访问权限
chmod -R 777 /www/html/
server { listen 80; server_name aaa.domain.com; root /www/html/admin/wwwroot/public/; index index.html index.htm index.php; location / { # 拦截所有请求,用于伪静态去掉index.php
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }
# 拦截所有.php结尾的请求,交给fastcgi_pass选项指定的文件处理,这里就是PHP fpm模块监听的地址。可启用端口监听或者sock监听 location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:7131; #fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } server { listen 443 ssl ;#配置SSL server_name aaa.domain.com; root /www/html/admin/wwwroot/public/; index index.html index.htm index.php; #################开启SSL ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #################证书文件地址 ssl_certificate /www/certs/aaa.domain.com/domain_nginx_public.crt; ssl_certificate_key /www/certs/aaa.domain.com/domain_nginx.key; location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
启动php-fpm,nginx
service php7.2-fpm restart
service nginx restart
查看9000端口是否运行
netstat -lnt | grep 9000
安装Mysql5.7
运行容器
docker run --restart=always --privileged=true --name mysql -d -p 3306:3306 -v /www/mysql/data/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7