安装了新的虚拟机,接下来就是记录一下Ubuntu下源码编译安装PHP7的过程
首先是从官网下载源码包 https://www.php.net/downloads.php
我这里选择的是 https://www.php.net/distributions/php-7.3.5.tar.gz
打开虚拟机,Ctrl + Alt + T 打开终端 sudo su可以切换超级管理员,不用每次输入命令都带sudo,至于为什么不用图形界面的功能,玩Ubuntu 不敲命令那玩啥。
复制下载链接
sudo wget https://www.php.net/distributions/php-7.3.5.tar.gz
执行以下命令进行解压
sudo tar -zxvf php-7.3.5.tar.gz
然后输入密码
cd php-7.3.5/
安装依赖
sudo apt update
sudo apt install gcc
sudo apt install make
sudo apt install openssl
sudo apt install curl
sudo apt install libbz2-dev
sudo apt install libxml2-dev
sudo apt install libjpeg-dev
sudo apt install libpng-dev
sudo apt install libfreetype6-dev
sudo apt install libzip-dev
sudo apt install libssl-dev
预编译
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl-dir=/usr/bin/curl --enable-mbregex --enable-mbstring --enable-ftp --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
直到看到这个界面, 预编译成功
编译并安装 ,参数-j指定编译线程数量来进行多线程编译,不想等着就加上咯
sudo make -j4
看到这个就完成编译了
执行以下命令进行安装
sudo make install
安装完成以及输入命令
/usr/local/php/bin/php -v
查看本版本
PHP7.3.5成功从源代码编译安装!!!!
最后复制一个源码编译出来的配置文件
sudo cp php.ini-development /usr/local/php/etc/php.ini
本来 想分开写的想想还是算了
配置php-fpm命令:
cd /usr/local/etc/ cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d cp www.conf.default www.conf
groupadd www
useradd -g www www
启动
/usr/local/php/sbin/php-fpm
没有消息就是好消息
验证
ps -ef |grep php-fpm
Nginx解析PHP多站点配置
cd /usr/local/nginx/conf
编辑配置文件为多文件
vim nginx.conf
把nginx.conf里面server{}内的注释掉,再引入以下文件
保存并关闭文件
:wq
新建文件夹
mkdir vhosts
进入目录
cd vhosts/
新建配置文件,建议文件名有辨识度,一个文件一个站点
vim 1.com.conf
配置文件内容
server {
listen 801; # 监听端口
server_name 127.0.0.1; # 站点域名
root /wwwroot/1.php; # 站点根目录
index index.html index.htm index.php; # 默认导航页
location / {
index index.html index.htm index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
# PHP配置
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存并关闭文件
:wq
重启
cd /usr/local/nginx
./sbin/nginx -s reload
访问两个站点成功