安装 PHP
添加软件源
Ubuntu
安装软件源拓展工具:
apt -y install software-properties-common apt-transport-https lsb-release ca-certificates
添加 Ondřej Surý 的 PHP PPA 源,需要按一次回车:
<span class="pln">add-apt-repository ppa:ondrej/php</span>
更新软件源缓存:
apt update
Debian
安装软件源拓展工具:
<span class="pln">apt -y install software-properties-common apt-transport-https lsb-release ca-certificates</span>
添加 PHP源
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
更新软件源缓存:
apt-get update
安装软件
安装 PHP7.3:
apt install -y php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-mbstring php7.3-xml php7.3-xmlrpc php7.3-opcache php7.3-zip php7.3 php7.3-json php7.3-bz2 php7.3-bcmath
管理 PHP
安装好了先重启一下!
<span class="pln">systemctl restart php7.3-fpm</span>
更多操作:
systemctl restart php7.3-fpm
#重启systemctl start php7.3-fpm
#启动systemctl stop php7.3-fpm
#关闭systemctl status php7.3-fpm
#检查状态
安装Nginx
添加 Nginx 源
wget -O /etc/apt/trusted.gpg.d/nginx-mainline.gpg https://packages.sury.org/nginx-mainline/apt.gpg
cat >> /etc/apt/sources.list.d/nginx.list << EOF
deb https://packages.sury.org/nginx-mainline/ $(lsb_release -sc) main
EOF
屏蔽 Backports 仓库中的 Nginx
cat >> /etc/apt/preferences << EOF
Package: nginx*
Pin: release a=stretch-backports
Pin-Priority: 499
EOF
更新源信息并安装 Nginx
apt update
apt install -y nginx-extras
systemctl enable nginx
安装 Percona Server 8.0
“Percona Server 是由 Oracle 发布的最接近官方 MySQL Enterprise 发行版的版本。”
Percona Server 与 MySQL 完全兼容,不必担心对接问题。
添加并启用 Percona Server 官方源
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
percona-release setup ps80
安装 Percona Server
apt install -y percona-server-server
安装过程中会弹出设置密码界面,自行设置即可。
然后会弹出加密方法选择界面。由于 MySQL 8 的最新加密方法大多数客户端不支持,所以我们这里选择第二种也就是传统加密方法。
mysql_secure_installation
配置站点(还是以可道云为例)
新建站点根目录
mkdir /home/wwwroot
这里配置两个站点,一个是这次要安装的可道云,一个是 phpMyAdmin 程序,两个都是基于 PHP 语言的程序
chmod -Rf 777 ./*
更改一下文件权限,默认root登陆,所以文件所有者均为root用户,但 nginx 默认是用 www-data 用户身份运行的,没有权限写入所有者是root的文件。所以如果不改变文件所有者的话,可能会出现程序无法在线修改更新,无法上传文件等情况,因此我们需要将网站所有的文件的所有者更改为 www-data ,直接运行带 -R(Recursion)参数的 chown 命令:
chown -R www-data:www-data /home/wwwroot
以后每次上传网站文件之后,都可以运行一下这个命令,保证 php 对网站的文件都可写,避免出现各种奇奇怪怪的问题。这同时也体现了把网站目录放一个文件夹下的优势——一条简单的命令就能更改全部文件的所有者了。
修改 Nginx 配置
直接在 /etc/nginx/sites-available/default 文件中每个域名添加一个 server 配置
nano /etc/nginx/sites-enabled/default
或者FileZilla本地编辑上传
# Default server configuration
#
server {
# 监听80端口,若请求的域名下面都没有定义或者是直接用ip访问的话将交给这个server处理
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 400;# 默认我禁止了ip直接访问,不是设置的域名访问的话会直接返回400
}
# 配置 phpMyAdmin
server {
listen 80;
server_name phpmyadmin.izgq.net;
# 要处理的HTTP请求的Host
root /usr/share/phpmyadmin;
# 定义网站文件的根目录,之前phpmyadmin的安装目录就是这个
index index.php;
# 未指定uri的时候默认处理的文件,例如 访问http://phpmyadmin.izgq.net/
# 实际处理的是http://phpmyadmin.izgq.net/index.php
# 默认的处理方式
location / {
try_files $uri $uri/ /index.php$is_args$args;
# 先检测root$uri文件是否存在,不存在就检查是否有root$uri目录存在
# 再不存在则让它作为/index.php的参数重新分发请求(实现传说中的伪静态)
}
# 处理带有php后缀的uri
location ~ \.php$ {
# 导入fastcgi 配置
include fastcgi.conf;
include fastcgi_params;
# 将请求转到php7.3-fpm中处理
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
}
# 可道云的配置,基本大同小异,SSL配置参考之前的博客
server {
listen 80;
server_name ru.hilove.cc;
root /home/wwwroot/kodcloud;
index index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi.conf;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
}
检测Nginx配置是否有问题
nginx -t
重启一下nginx服务使配置生效
/etc/init.d/nginx restart