目录
查看操作系统及版本信息
搭建版本
安装NGINX
wget http://nginx.org/download/nginx-1.8.1.tar.gz
yum install pcre pcre-devel openssl openssl-devel -y #安装依赖;
yum install zlib zlib-devel gcc gcc-c++ autoconf automake
useradd -s /sbin/nologin nginx -M
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/opt/nginx181/ #指定安装目录;
make && make install
ln -s /opt/nginx181/sbin/nginx /usr/local/bin/nginx #做软连接,可直接通过命令启动;
nginx #启动
nginx -t #检查配置
ngins -s reload #重新加载
netstat -ntlup|grep nginx
ps -aux |grep nginx
验证:
安装mysql:
yum -y install https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install yum-utils
yum-config-manager --disable mysql57-community
yum-config-manager --enable mysql55-community
yum repolist enabled | grep mysql
yum -y install mysql-community-client
rpm -e MariaDB-common-10.1.41-1.el7.centos.x86_64 --nodeps #移除mariadb,没有报错则跳过此步骤;
yum install -y mysql-community-server
systemctl start mysqld.service
#修改初始密码
#方法1:
mysqladmin -uroot password '123.com'
#方法2:
update user set password=password('456.com') where user='root' and host='localhost';
flush privileges;
#方法3:
set password=password('123.com');
flush privileges;
#优化数据库
mysql -uroot -p
drop database test;
select user,host from mysql.user;
drop user ''@'localhost';
drop user 'root'@'::1';
#注意:grant新建的用户drop删除不了,需要用delete删除。
grant all on *.* to root@'a' identified by '123.com';
delete from mysql.user where user='root' and host='a';
安装PHP
netstat -ntlup |egrep 'nginx|mysql' #查看nginx和mysql端口
#安装依赖包
yum -y install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel
rpm -qa zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel
yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum search php70w #查看php7.0的扩展名称,根据自己需求安装;
yum install php70w php70w-fpm php70w-cli php70w-common php70w-devel php70w-gd php70w-pdo php70w-mysql php70w-mbstring php70w-bcmath
php -v
Systemctl start php-fpm.service #启动
Systemctl Stop php-fpm.service #停止
Systemctl Restart php-fpm.service #重启
Systemctl reload php-fpm.service #重启修改配置
#修改配置文件
vim /etc/php-fpm.conf
[global]
pid = /var/run/php-fpm/php-fpm.pid
error_log = /var/log/php-fpm/error.log
log_level = error
rlimit_files = 32768
events.mechanism = epoll
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx
pm = dynamic
pm.max_children = 1024
pm.start_servers = 16
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.process_idle_timeout = 15s;
pm.max_requests = 2048
slowlog = /app/logs/$pool.log.slow
request_slowlog_timeout = 10
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f 邮箱地址
/usr/sbin/php-fpm -t #检查语法
[28-Aug-2019 17:27:38] ERROR: Unable to create or open slowlog(/app/logs/www.log.slow): No such file or directory (2)
[28-Aug-2019 17:27:38] ERROR: failed to post process the configuration
[28-Aug-2019 17:27:38] ERROR: FPM initialization failed
mkdir -p /app/logs
/usr/sbin/php-fpm -t #再次检查
systemctl reload php-fpm.service
截图
检查状态
设置开机启动
systemctl enable php-fpm.service
systemctl enable mysqld.service
vi /etc/rc.local
/opt/nginx181/sbin/nginx
安装libiconv字符集转换包
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/opt/libiconv114
make && make install
#如果报srclib/错误执行:
cd /root/libiconv-1.14/srclib/
sed -i -e '/gets is a security/d' ./stdio.in.h
安装libmcrypt加密库
wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
安装mhash加密扩展库
wget https://jaist.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
tar zxf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
cd ../
mv /usr/lib64/libmcrypt.* /delete
mv /usr/lib64/libmhash* /delete
find / -name libmcrypt.la
ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
安装mcrypt加密扩展库
wget https://jaist.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar zxf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
/sbin/ldconfig
./configure LD_LIBRARY_PATH=/usr/local/lib
make
make install
NGINX关联PHP
编辑nginx配置文件
vi /opt/nginx181/conf/nginx.conf
添加以下内容
location / {
root html;
index index.html index.htm index.php; #添加index.php;
}
location ~ \.php {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /opt/nginx181/conf/fastcgi_params; #编译安装根据自己的目录来写;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
截图
在html目录下添加一个PHP测试文件
vi /opt/nginx181/html/index.php
添加以下内容
<?php
phpinfo();
?>
检查并重启服务
验证
PHP连接MySQL
编辑一个新的PHP文件
vi /opt/nginx181/html/connect_mysql.php
添加以下内容
<?php
# mysqli_connect参数:ip:port、账号、密码、数据库 #如果是本机一定要写localhost
$link = mysqli_connect("localhost", "root", "123456", "mysql");
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL . "</br>";
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL. "</br>";
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL. "</br>";
exit;
}
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL. "</br>";
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
mysqli_close($link);
?>
验证
参考: