CENTOS7下编译安装NGINX PHP MYSQL(Mariadb)

/ 0评 / 0

用的是虚拟机系统安装的全新的CENTOS7
一.安装前准备
mkdir /package/
mkdir /lnmp/

存放源码的文件夹统一为/usr/src/
package是用来存放编译后的库文件。
lnmp是我们真正需要的东西才放里面。(nginx+mysql+memcached+php)

二.安装NGINX
cd /usr/src/
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf pcre-8.39.tar.gz
tar -zxvf zlib-1.2.8.tar.gz //只要解压就可以不用make安装
tar -zxvf nginx-1.11.4.tar.gz
cd nginx-1.11.4
./configure --prefix=/lnmp/nginx --with-pcre=/usr/src/pcre-8.38 --with-zlib=/usr/src/zlib-1.2.8
make
make install

NGINX其实还是要创建启动脚本比较方便

vi /etc/init.d/nginx
启动脚本:
#!/bin/bash
chkconfig:235 85 15
description: Nginx is an HTTP server
. /etc/rc.d/init.d/functions
start() {
echo "Start..."
/usr/src/nginx/sbin/nginx &> /dev/null
if [ $? -eq 0 ];then
echo "Start successful!"
else
echo "Start failed!"
fi
}
stop() {
if killproc nginx -QUIT ;then
echo "Stopping..."
fi
}
restart() {
stop
sleep 1
start
}
reload() {
killproc nginx -HUP
echo "Reloading..."
}
configtest() {
/usr/src/nginx/sbin/nginx -t
}
case $1 in
start)
start ;;
stop)
stop ;;
restart)
restart ;;
reload)
reload ;;
configtest)
configtest ;;
*)
echo "Usage: nginx {start|stop|restart|reload|configtest}"
;;
esac

接着给予权限
chmod -R 777 /etc/init.d/nginx
chkconfig nginx on

修改配置文件
vi /lnmp/nginx/conf/nginx.conf
把下面的语句去掉注释并修改为自己安装路径
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /lnmp/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

现在就可以用
service nginx start
来启动服务了
输入127.0.0.1在浏览器里就可以看到WELCOME TO NGINX

三、安装php

安装libxml2
cd /usr/src/
wget ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz
tar -zxvf libxml2-2.9.4.tar.gz
cd libxml2-2.9.4
./configure \
--prefix=/package/libxml2 --with-python=no
make
make install

安装 PHP

cd /usr/src/
wget http://cn2.php.net/distributions/php-7.0.11.tar.gz
tar -zxvf php-7.0.11.tar.gz
cd php-7.0.11
./buildconf
./configure --prefix=/lnmp/php --with-libxml-dir=/package/libxml2 --with-config-file-path=/lnmp/php/etc --enable-mbstring --enable-fpm --with-mysqli
make
make test
make install

后续配置PHP:

cp /usr/src/php-7.0.11/php.ini-production /lnmp/php/etc/php.ini
cp /usr/src/php-7.0.11/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig php-fpm on
service php-fpm start

四、安装mysql
首先安装CAMKE
wget https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz
tar -zxvf cmake-3.4.1.tar.gz
cd cmake-3.4.1
./configure --prefix=/package/cmake
make
make install
export PATH=/package/cmake/bin:$PATH //设置环境变量。可选,只是为了以后使用cmake方便点。

安装ncurses

[官方网站] http://ftp.gnu.org/gnu/ncurses/

wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
tar -zxvf ncurses-6.0.tar.gz
cd ncurses-6.0
./configure --prefix=/package/ncurses
make
make install

安装mysql
mysql从5.7版本后就需要boost库的支持了。而且mysql需要指定的boost版本号,高了或低了都有可能导致编译不通过。
BOOST不知怎么的,我的网络下载不了,但是正好找到了一个SOHU镜像推荐给大家 http://mirrors.sohu.com/ ,在http://mirrors.sohu.com/mysql/我找到了带BOOST的MYSQL版本

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.14.tar.gz
tar -zxvf mysql-boost-5.7.14.tar.gz
cd mysql-5.7.14
mv boost /

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_BOOST=/boost/boost_1_59_0 \
-DCURSES_LIBRARY=/package/ncurses/lib/libncurses.a \
-DCURSES_INCLUDE_PATH=/package/ncurses/include

make
make install

chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql #改变目录拥有者与所属组

ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16
cd support-files/
cp my-large.cnf /etc/my.cnf # 选择默认 配置文件
cp mysql.server /etc/init.d/mysqld # 复制启动文件
chmod 755 /etc/init.d/mysqld
初始化安装数据库:
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

然后service mysqld start就会发现
Starting MySQL. SUCCESS!
现在MYSQL ROOT是空密码,为了以后使用PHPMYADMIN等工具(默认不允许空密码登陆)可以为ROOT增加密码
./usr/local/mysql/bin/mysqladmin -u root password '172753'
至此,CENTOS7下安装PHP+NGINX+MYSQL完毕!

2017/10/14更新 yum安装CENTOS7 NGINX PHP7 MARIADB VSFTP安装手记
用的是vultr的VPS,系统选择的是CENTOS7 64x,yum安装的好处就是比较放心,出错的机会小,至于优化说实在的对于小站真的没有什么用。
首先VULTR默认是关闭所有端口的
所以要添加 iptables -F

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT

为了安全修改SSH的默认端口
vi /etc/ssh/sshd_config
修改PORT 22为其他
为了安装最新版本的软件需要更新系统的镜像
  rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

开始安装:
1、安装 nginx:

yum install nginx 使用 yum 安装

systemctl start nginx.service 开启 nginx 服务

systemctl enable nginx.service 跟随系统启动

2、安装 MySQL(MariaDB)

yum install mariadb-server mariadb 使用 yum 安装

systemctl start mariadb 启动数据库

systemctl enable mariadb 开机启动

mysql_secure_installation 设置安全策略,会询问以下5个问题

a)为root用户设置密码
b)删除匿名账号
c)取消root用户远程登录
d)删除test库和对test库的访问权限
e)刷新授权表使修改生效

3、安装 PHP
yum install php71w php71w-devel php71w-common php71w-mysql php71w-pdo php71w-opacache php71w-xml php71w-fpm php71w-mbstring php71w-gd
vi /etc/php.ini 配置 PHP:

cgi.fix_pathinfo=0 这行前的分号去掉,将1改为0

vi /etc/php-fpm.d/www.conf 编辑服务器连接配置:

listen = 127.0.0.1:9000 将 listen 的值改为此值

listen.owner = nobody 这行前的分号去掉

listen.group = nobody 这行前的分号去掉

user = nginx
group = nginx 将这两行的值由 apache 改为 nginx

systemctl start php-fpm

systemctl enable php-fpm
4、配置 Nginx 到 PHP

vi /etc/nginx/conf.d/site.conf
server {
listen 80;
server_name domain.com;

# note that these lines are originally from the "location /" block
root /home/web/site; # 配置 wordpress 的目录路径
index index.php index.html index.htm;

location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
5、安装 FTP

yum install vsftpd 安装 FTP 服务

systemctl start vsftpd.service

systemctl enable vsftpd.service

vi /etc/vsftpd/vsftpd.conf 修改 FTP 配置:

anonymous_enable=NO 这行改为 NO,不允许匿名登录

允许 root 用户使用 FTP:

去掉或注释掉 /etc/vsftpd/ftpusers 中的root

去掉或注释掉 /etc/vsftpd/user_list 中的root

配置 iptables:

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

systemctl restart vsftpd.service 重启 FTP 服务

关于mariadb的优化推荐一个测试工具:
# wget https://github.com/major/MySQLTuner-perl/tarball/master
# tar xvf master
# cd major-MySQLTuner-perl-b828a6e/
# ./mysqltuner.pl

它运行后会给出类似这样的结果:
Variables to adjust:
query_cache_size (=0)
query_cache_type (=0)
query_cache_limit (> 1M, or use smaller result sets)
join_buffer_size (> 128.0K, or always use indexes with joins)
tmp_table_size (> 64M)
max_heap_table_size (> 64M)
thread_cache_size (start at 4)
innodb_file_per_table=ON
innodb_log_file_size should be (=16M) if possible, so InnoDB total log files size equals to 25% of buffer pool size.

 

安装锐速准备
rpm -ivh http://linuxsoft.cern.ch/cern/centos/7/updates/x86_64/Packages/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force

wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh
service serverSpeeder start
锐速卸载方法:
chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f

发表评论

电子邮件地址不会被公开。 必填项已用*标注