lnmp php7编译安装,CentOS 7编译安装最新LNMP环境

注:网站系统为CentOS 7,使用systemd。

一、准备工作:

1、升级系统

yum update -y

2、清理原有安装

yum remove phpmariadb nginxhttp -y

二、服务器LNMP编译安装

1、安装编译工具

yum install gcc cmake gcc-c++ -y

2、安装Nginx

安装依赖

yum install pcre-devel zlib-devel -y

mkdir -p /data/source

cd /data/source

wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz

tar xvf openssl-1.0.2l.tar.gz -C /data/lnmp/

cd /data/lnmp/openssl-1.0.2l

./config --prefix=/data/lnmp/lib --openssldir=/data/lnmp/lib/openssl

make -j5

make install

建立组和用户并设置不能ssh登录

groupadd -r www

useradd -r -M -s /sbin/nologin -g www www

sed -i "s/\/home\/www://" /etc/passwd

下载

tar xvf nginx-1.13.2.tar.gz

编译

cd nginx-1.13.2

./configure --prefix=/data/lnmp/nginx --user=www --group=www --pid-path=/run/nginx.pid --lock-path=/run/nginx.lock --http-client-body-temp-path=/tmp/client --http-proxy-temp-path=/tmp/proxy --http-fastcgi-temp-path=/tmp/fastcgi --http-uwsgi-temp-path=/tmp/uwsgi --http-scgi-temp-path=/tmp/scgi --http-log-path=/data/lnmp/log/nginx/access.log --error-log-path=/data/lnmp/log/nginx/error.log --with-http_ssl_module --with-http_v2_module --with-stream_realip_module --with-openssl=/data/lnmp/openssl-1.0.2l

make -j5

make install

配置启动

mkdir /usr/lib/systemd/system

cat > /usr/lib/systemd/system/nginx.service << "EOF"

[Unit]

Description=The nginx HTTP and reverse proxy server

After=network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

PIDFile=/run/nginx.pid

ExecStartPre=/data/lnmp/nginx/sbin/nginx -t -c /data/lnmp/nginx/conf/nginx.conf

ExecStart=/data/lnmp/nginx/sbin/nginx -c /data/lnmp/nginx/conf/nginx.conf

ExecReload=/bin/kill -HUP $MAINPID

ExecStop=/bin/kill -QUIT $MAINPID

[Install]

WantedBy=multi-user.target

EOF

sed -i "s/\/\$nginx_version//" /data/lnmp/nginx/conf/fastcgi*

sed -i "s/}/ application\/vnd.android.package-archive apk;\n}/g" /data/lnmp/nginx/conf/mime.types

mv /data/lnmp/nginx/conf/nginx.conf /data/lnmp/nginx/conf/nginx.conf.bak

mkdir /data/lnmp/nginx/conf/conf.d

cat > /data/lnmp/nginx/conf/nginx.conf << "EOF"

user www;

worker_processes 4;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

charset utf-8;

sendfile on;

client_max_body_size 40m;

server_tokens off;

keepalive_timeout 65;

gzip on;

include conf.d/*.conf;

}

EOF

cat > /data/lnmp/nginx/conf/conf.d/www.conf << "EOF"

server {

listen 80;

server_name localhost;

root /data/www;

index index.html index.htm index.php;

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;

location / {

try_files $uri $uri/ /index.php$is_args$args;

}

location ~ \.php$ {

try_files $uri = 404;

fastcgi_pass 127.0.0.1:9000;

include fastcgi.conf;

}

}

EOF

mkdir /data/www

ln -s /data/lnmp/nginx/sbin/nginx /usr/sbin/

打开防火墙

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --reload

3、安装PHP

安装依赖

yum install libxml2-devel systemd-devel gd-devel libcurl-devel -y

下载

tar xvf php-7.1.7.tar.xz

编译

cd php-7.1.7

./configure --prefix=/data/lnmp/php --enable-fpm --with-fpm-systemd --with-fpm-user=www --with-fpm-group=www --with-config-file-path=/data/lnmp/php --with-config-file-scan-dir=/data/lnmp/php/lib/php/extensions --without-sqlite3 --enable-opcache --disable-ipv6 --enable-mbstring --with-gettext --with-curl --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --without-pdo-sqlite --disable-phpdbg --with-gd --with-freetype-dir --with-png-dir --with-xpm-dir --with-jpeg-dir --enable-gd-native-ttf --with-zlib --enable-exif --enable-zip --enable-soap --with-openssl=/data/lnmp/lib

make -j5

make install

make时出现:

PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.

make install之后,运行以下命令,再次

make && make install

就可以了

/data/lnmp/php/bin/pear install channel://pear.php.net/PHP_Archive-0.12.0

ln -s /data/lnmp/php/bin//usr/bin

ln -s /data/lnmp/php/sbin/ /usr/sbin

cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/

sed -i "s/\${prefix}/\/data\/lnmp\/php/" /usr/lib/systemd/system/php-fpm.service

sed -i "s/\${exec_prefix}/\/data\/lnmp\/php/" /usr/lib/systemd/system/php-fpm.service

sed -i "s/\/data\/php\/var\/run/\/run/" /usr/lib/systemd/system/php-fpm.service

cp sapi/fpm/www.conf /data/lnmp/php/etc/php-fpm.d/

cp sapi/fpm/php-fpm.conf /data/lnmp/php/etc/

echo "zend_extension=/data/lnmp/php/lib/php/extensions/no-debug-non-zts-20160303/opcache.so" > /data/lnmp/php/lib/php/extensions/opcache.ini

cp php.ini-production /data/lnmp/php/php.ini

sed -i "s/;opcache.enable=0/opcache.enable=1/" /data/lnmp/php/php.ini

sed -i "s/;opcache.enable_cli=0/opcache.enable_cli=1/" /data/lnmp/php/php.ini

sed -i "s/max_execution_time = 30/max_execution_time = 60/" /data/lnmp/php/php.ini

sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 20M/" /data/lnmp/php/php.ini

sed -i "s/post_max_size = 8M/post_max_size = 20M/" /data/lnmp/php/php.ini

sed -i "s/display_errors = Off/display_errors = On/" /data/lnmp/php/php.ini

sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /data/lnmp/php/php.ini

sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/" /data/lnmp/php/php.ini

sed -i "s/expose_php = On/expose_php = Off/" /data/lnmp/php/php.ini

sed -i "s/;error_log = log\/php-fpm.log/error_log = \/data\/lnmp\/log\/php\/php-fpm.log/" /data/lnmp/php/etc/php-fpm.conf

sed -i "s/;slowlog = log\/\$pool.log.slow/slowlog = \/data\/lnmp\/log\/php\/slow.log/g" /data/lnmp/php/etc/php-fpm.conf

sed -i "s/;request_slowlog_timeout = 0/request_slowlog_timeout = 300/g" /data/lnmp/php/etc/php-fpm.conf

mkdir /data/lnmp/log/php

4、安装MariaDB/Mysql数据库

创建mysql用户

groupadd -r mysql

useradd -r -M -s /sbin/nologin -g mysql mysql

sed -i "s/\/home\/mysql://" /etc/passwd

安装依赖

yum install ncurses-devel bison gnutls-devel -y

下载

tar xvf mariadb-10.2.6.tar.gz

编译

cd mariadb-10.2.6

cmake . \

-DCMAKE_INSTALL_PREFIX=/data/lnmp/mariadb \

-DMYSQL_DATADIR=/data/lnmp/mariadb/data \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_SYSTEMD=auto \

-DINSTALL_SYSTEMD_UNITDIR=/usr/lib/systemd/system \

-DDISABLE_SHARED=OFF \

-DPLUGIN_MROONGA=NO \

-DPLUGIN_FEDERATED=NO \

-DPLUGIN_FEDERATEDX=NO \

-DPLUGIN_OQGRAPH=NO \

-DPLUGIN_AUTH_PAM=NO \

-DPLUGIN_SEQUENCE=NO \

-DPLUGIN_SPIDER=NO \

-DWITH_WSREP=NO \

-DPLUGIN_FTEXAMPLE=NO \

-DPLUGIN_DAEMON_EXAMPLE=NO \

-DPLUGIN_EXAMPLE=NO \

-DPLUGIN_EXAMPLE_KEY_MANAGEMENT=NO \

-DPLUGIN_CONNECT=NO \

-DCONNECT_WITH_ODBC=OFF \

-DCONNECT_WITH_MYSQL=1 \

-DCONNECT_WITH_LIBXML2=NO \

-DWITH_DEBUG=NO \

-DWITH_EMBEDDED_SERVER=OFF \

-DWITH_PROFILING=OFF \

-DWITH_UNIT_TESTS=OFF \

-DPLUGIN_TOKUDB=NO

make -j5

make install

ln -s /data/lnmp/mariadb/bin//usr/bin

chown mysql:mysql /data/lnmp/mariadb/data -R

cp support-files/my-huge.cnf /data/lnmp/mariadb/my.cnf

sed -i "s/ExecStart=\/usr\/sbin\/mysqld/ExecStart=\/data\/lnmp\/mariadb\/bin\/mysqld/" usr/lib/systemd/system/mariadb.service

sed -i "s/\$MYSQLD_OPTS \$_WSREP_NEW_CLUSTER \$_WSREP_START_POSITION/--defaults-file=\/data\/lnmp\/mariadb\/my.cnf/" /usr/lib/systemd/system/mariadb.service

/data/lnmp/mariadb/scripts/mysql_install_db --user=mysql --defaults-file=/data/lnmp/mariadb/my.cnf --datadir=/data/lnmp/mariadb/data/

systemctl start mariadb

/data/lnmp/mariadb/bin/mysqladmin -u root password 'password'

rm -rf /data/lnmp/mariadb/bin/mysql_client_test

rm -rf /data/lnmp/mariadb/mysql-test

rm -rf /data/lnmp/mariadb/data/test

rm -rf /data/lnmp/mariadb/sql-bench

更新或重新编译后:

sed -i "s/ExecStart=\/usr\/sbin\/mysqld/ExecStart=\/data\/lnmp\/mariadb\/bin\/mysqld/" /usr/lib/systemd/system/mariadb.service

sed -i "s/\$MYSQLD_OPTS \$_WSREP_NEW_CLUSTER \$_WSREP_START_POSITION/--defaults-file=\/data\/lnmp\/mariadb\/my.cnf/" /usr/lib/systemd/system/mariadb.service

rm -rf /data/lnmp/mariadb/bin/mysql_client_test*

rm -rf /data/lnmp/mariadb/mysql-test

rm -rf /data/lnmp/mariadb/data/test

rm -rf /data/lnmp/mariadb/sql-bench

systemctl daemon-reload

systemctl restart mariadb

5、完成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值