虽然说是非root权限,但是编译PHP所需要的依赖包还是需要root权限的。
安装之前先保证linux有gcc和g++,因为很多东西都需要这两个库,如果没有,运行以下命令
yum install -y gcc gcc-c++
一般linux里面都会有,如果已经存在,它会报已经存在无法安装
一、安装Nginx
1. 安装Nginx前,我们需要安装3个依赖包zlib、pcre、openssl(此需要root权限)
yum install -y zlib pcre openssl
2. 如果上面没有无法yum,那就外部下载zlib、pcre、openssl的依赖包再安装,如果yum成功,请跳过此步
2.1 安装 pcre(make的时候此需要root权限)
下载pcre依赖包 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre
上传到目录里 //这边目录为/home/Nginx/(是Nginx用户)
cd /home/Nginx/
tar -zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure
make
make install
2.2 安装openssl(make的时候此需要root权限)
下载openssl依赖包 http://distfiles.macports.org/openssl/
上传到目录里 //这边目录为/home/Nginx/(是Nginx用户)
cd /home/Nginx/
tar -zxvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config
make
make install
2.3 安装zlib(make的时候此需要root权限)
下载zlib依赖包 http://www.zlib.net/fossils/
上传到目录里 //这边目录为/home/Nginx/(是Nginx用户)
cd /home/Nginx/
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
CFLAGS="-O3 -fPIC" ./configure
make
make install
3. 安装Nginx
下载Nginx http://nginx.org/en/download.html
上传到目录里 //这边目录为/home/Nginx/(是Nginx用户)
tar -zxvf Nginx-1.8.0.tar.gz
cd Nginx-1.8.0
./configure --prefix=/home/Nginx/Nginx-server //--prefix=要安装的目录
make
make install
//如果是有进行第2步的操作,安装Nginx的时候,配置时使用下面的命令,其余命令一样
./configure --prefix=/home/Nginx/Nginx-server --with-pcre=/home/Nginx/pcre-8.36 --with-zlib=/home/Nginx/zlib-1.2.3 --with-openssl=/home/Nginx/openssl-1.0.1e
//--with-pcre=pcre安装的路径地址 --with-zlib=zlib安装的路径地址 --with-openssl=openssl安装的路径地址
4. 检测Nginx是否成功
cd /home/Nginx/Nginx-server/sbin
./Nginx -v 查看版本,检测是否安装成功
二 安装MysqL
1. 安装MysqL前先安装cmake小工具,使用cmake来编译(此需要root权限)
yum install -y cmake
2. 如果上面没有无法yum,那就外部下载cmake再安装,如果yum成功,请跳过此步(make的时候此需要root权限)
下载cmake https://cmake.org/files/
上传到目录里 //这边目录为/home/MysqL/(是MysqL用户)
cd /home/MysqL/
tar -xvzf cmake-3.6.1.tar.gz
cd cmake-3.6.1
./bootstrap
gmake
make install
3. 安装MysqL
下载MysqL http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.6/
上传到目录里 //这边目录为/home/MysqL/(是MysqL用户)
tar -zxvf mysql-5.6.43.tar.gz
cd mysql-5.6.43
cmake -DCMAKE_INSTALL_PREFIX=/home/MysqL/MysqL-server //-DCMAKE_INSTALL_PREFIX=要安装的目录
make
make install
4. 配置 MysqL
cd /home/MysqL/MysqL-server
rm -f /etc/my.cnf // 删除系统自带的MysqL配置文件
./scripts/MysqL_install_db
将 ./support-files/MysqL.server 复制到 /etc/init.d/ 下
cp support-files/MysqL.server /etc/init.d/MysqLd
修改 linux 的环境变量
vim /etc/profile //vim不行的可以使用vi命令
将指针移动到最后一行,然后输入i就可以在最后一行书写操作了,然后在/etc/profile文件的最后加入一句
export PATH="/home/MysqL/MysqL-server/bin:$PATH"
然后摁住“Esc”退出当前书写操作,再摁住“Shift”+“:” 并输入“wq” 保存并退出
source /etc/profile // 这一句是让配置立即生效
service MysqLd start // 启动 MysqL
下面就可以操作数据库了
MysqL -u root -p
//密码为空,所以在输入密码的地方直接敲回车即可
use MysqL; //选择数据库
UPDATE user SET password=PASSWORD('newpasswd') WHERE user='root'; //修改密码,其中newpasswd即为你所要设的密码
flush privileges; //刷新,设置完需要刷新才能生效
exit; //退出
三、 安装PHP
1. yum安装编译PHP过程所需要的编译工具和小程序(安装这些编译工具和小程序需要root权限)
yum install -y autoconf libtool-ltdl-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel ncurses-devel libcap-devel sendmail pcre-devel libxslt-devel bzip2-devel diffutils unzip ntp bzip2 patch curl libjpeg libpng freetype libxslt libxml2 libxml2-devel
2. 如果第一步中无法安装libxml2,请外部下载libxml2的依赖包并安装,如果已经安装libxml2,请跳过此步
安装libxml2(安装libxml2必须要root权限)
下载libxml2 http://xmlsoft.org/sources/
上传到目录里 //这边目录为/home/PHP/(是PHP用户,此用户不一定是PHP用户,可以是其他用户,其他用户即为其对应用户名为目录,因为linux创建用户的时候都会在/home目录产生对应的文件目录,而我们使用的用户即为在对应目录下面进行操作,根据公司所设置的用户来操作)
cd /home/PHP/
tar -zxvf libxml2-2.9.1.tar.gz
cd libxml2-2.9.1
./configure--with-python=no
make
make install
3. 安装 PHP
下载PHP https://museum.php.net/php5/
上传到目录里 //这边目录为/home/PHP/(是PHP用户)
tar -zxvf PHP-5.3.27.tar.gz
cd PHP-5.3.27
./configure --prefix=/home/PHP/PHP5 --with-config-file-path=/home/PHP/PHP5/etc --with-MysqL=MysqLnd --with-MysqLi=MysqLnd --with-pdo-MysqL=MysqLnd --enable-fpm --enable-sockets --enable-zip --enable-calendar --enable-bcmath --enable-soap --with-zlib --with-iconv --with-gd --with-xmlrpc --enable-mbstring --with-curl --enable-ftp --with-mcrypt --without-pear --with-freetype-dir --with-jpeg-dir --with-png-dir --disable-ipv6 --disable-debug --with-openssl //--prefix=要安装的目录
make
make test //test完之后,输入n
make install
//中途可能会出现libmcrypt的问题错误,如果出现,下载安装libmcrypt,安装过程如下:(安装libmcrypt必须要root权限)
下载libmcrypt http://soft.7dot.com/
上传到目录里 //这边目录为/home/PHP/(是PHP用户)
cd /home/PHP/
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/usr/local //--prefix=要安装的目录
make
make install
到此为止,PHP就安装好了,接下来就是配置PHP和Nginx
四、 PHP和Nginx配置
1. PHP配置
cp PHP.ini-development /home/PHP/PHP5/etc/PHP.ini
cp /home/PHP/PHP5/etc/PHP-fpm.conf.default /home/PHP/PHP5/etc/PHP-fpm.conf
vim /home/PHP/PHP5/etc/PHP.ini //vim不行的可以使用vi命令
打开PHP配置文件找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0。
设置完毕保存并退出
//vim或vi配置文件之后,输入“/cgi.fix_pathinfo/”即可找到,如果没找到,可以连续输入几次,然后在找到的那个地方,输入“i”指针即可进入当前行数进行书写模式。修改完之后摁住“Esc”退出书写模式,然后摁住“Shift”+“:” 并输入“wq” 保存并退出。
注意一个地方就是PHP.ini配置文件的位置可以在编译前配置参数中设置,编译参数可以写成:--with-config-file-path=/home/PHP/PHP5/etc 这样的话PHP就回去指定的目录下读取PHP.ini配置文件,如果不加这个参数默认位置就是PHP安装目录下的lib目录,具体也可以在PHPinfo()输出界面查看,如果PHP.ini放到其他位置,PHP读取不到,那么所有的配置修改后都是不生效的,这点要注意
vim /home/cib/PHP/etc/PHP-fpm.conf
修改PHP-fpm.conf 的user和group为对应打开网站的用户和组(如果打开网站的用户和组是www,那就将nobody改成www,此处改为Nginx)
user = Nginx
group = Nginx
启动 PHP-fpm(必须root权限)
/home/PHP/PHP5/sbin/PHP-fpm
如果出现ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use 错误
killall PHP-fpm
再重新启动启动 PHP-fpm
/home/PHP/PHP5/sbin/PHP-fpm
2. Nginx 配置
cd Nginx-server/conf/ (是Nginx用户,启动Nginx必须为Nginx用户)
vim Nginx.conf
include /home/Nginx/Nginx-server/conf.d/*.conf; //必须先创建一个conf.d目录,*.conf为各个站点的Nginx的配置文件
保存并退出
然后将conf.d目录下的各个.conf文件进行配置(此处用test.conf来替代)
cd conf.d //进入此目录下的conf.d目录
cp /home/Nginx/Nginx-server/conf/Nginx.conf /home/Nginx/Nginx-server/conf.d/test.conf //复制Nginx.conf文件到指定目录并改名为test.conf
vim test.conf //将test.conf目录里面全部删除并写入以下内容(vim不行的用vi命令,怎么书写保存退出等参考前面配置PHP.ini和配置环境变量)
server {
listen 80; //为对应的连接外网的端口号
server_name localhost; //为对应的域名,如果没有内网连接可以使用对应IP ,然后端口号80改为其他端口
root html/test; //网站安装的相对路径,因为这是直接安装在Nginx底下的html目录下面,也可以直接路径,网站文件为test(测试命名,具体网站文件最好命名跟项目相关的)
index index.html index.htm index.PHP; //网站默认打开页面
location ~ \.PHP$ { //支持PHP的模块
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; //$document_root 为前面root设置的路径
include fastcgi_params;
}
}
//此处需要注意的是非root权限无法使用1024以下的端口号
五、 测试
进入Nginx启动地址
cd /home/Nginx/Nginx-server/sbin/ //Nginx用户,直接cd Nginx-server/sbin/
启动之前建议先./Nginx -t查看下Nginx配置文件是否正确
./Nginx -s reload //重启Nginx。如果之前已经启动了Nginx,就不宜使用./Nginx命令启动,而应该用此处的命令,不然会出现端口报错
2. 测验
index.PHP文件写入如下内容:
<?PHP
PHPinfo();
?>
然后通过域名打开,如果能够打开PHPinfo的信息,即PHP配置信息,那就代表PHP安装配置成功。
//由于这边还未有域名绑定,所以只能使用“IP:端口”的方式打开。
至此全部结束。
其余的一些小东西
1. 使用端口号的使用,可能遇到防火墙阻止,即测试网站打不开,此时参考https://www.cnblogs.com/chenlizhi/p/6668656.html,进行设置端口号。
2. 端口被占用问题,参考https://www.jianshu.com/p/8f6a42fb0654,或者参考https://blog.csdn.net/qq_27252133/article/details/53646986的第二个方法,进行杀进程处理
3. MysqL无法被外部IP连接,导致后期搭建PHP网站无法连接数据库,此时参考https://www.cnblogs.com/xiaochongzi/p/6627418.html,进行设置外网可以连接。
安装步骤仅供参考,linux环境不一样,安装的情况可能也不一样,几个依赖包和库(就是必须使用root权限的)可以让拥有root权限的人员去帮忙安装,依赖包的路径可以自己定义,只要能够对应上相应的依赖包即可。一般生产环境是不使用root权限的,因为权限太高。
参考的文章:https://blog.csdn.net/nouswait/article/details/83105378 主要参考来源
https://www.cnblogs.com/freeweb/p/5425554.html 次要参考来源
https://blog.csdn.net/hometing218/article/details/79516686 安装cmake
https://www.cnblogs.com/nucdy/p/5784809.html 修改数据库密码
https://www.cnblogs.com/Erick-L/p/7066564.html Nginx多站点配置
https://www.cnblogs.com/ghjbk/p/6728100.html PHP-fpm 出错问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。