Aliyun CentOS7.3 Build LNMP Manually

Posted by antwown on Sat, 04 Jul 2020 17:42:46 +0200


1. Turn off firewalls and selinux


Close Firewall

[root@localhost ~]# systemctl stop firewalld.service


[root@localhost ~]# vim  /etc/sysconfig/selinux
 Find SELINUX=enforcing and change enforcing to disabled 
[root@localhost ~]# setenforce 0

2. Install nginx


wget download install nginx package

[root@localhost ~]# wget

Establish a yum repository for nginx

[root@localhost ~]#  rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

install & start nginx

[root@localhost ~]# yum install -y nginx
[root@localhost ~]# systemctl start nginx.service

3. Install mysql


Download repo resources

[root@localhost ~]# wget

Install mysql-community-release-el7-5.noarch.rpm

[root@localhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

Install MySQL &Set User Rights &Restart

[root@localhost ~]# sudo yum install -y  mysql-server
[root@localhost ~]# sudo chown -R root:root /var/lib/mysql
[root@localhost ~]# systemctl restart mysql.service

Log in to MySQL and change your password (you can set it yourself after all installation is complete):

[root@localhost ~]# mysql -u root
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > flush privilgegs;
mysql > exit;

3.PHP7 Installation


rpm install php corresponding yum resources

[root@localhost ~]# rpm -Uvh
[root@localhost ~]# rpm -Uvh

install php7.0

[root@localhost ~]# yum install -y php70w

Install Extensions

[root@localhost ~]# yum install -y  php70w-mysql.x86_64   php70w-gd.x86_64   php70w-ldap.x86_64   php70w-mbstring.x86_64  php70w-mcrypt.x86_64

Install php fpm

[root@localhost ~]# ​yum install -y php70w-fpm


Modify Configuration

nginx profile modification: can be done directly inNginx.confModify, for fear of bad modification, I create a new.conf file in con.d.

user  nginx;

worker_processes auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

        use epoll;
        worker_connections 51200;
        multi_accept on;

        include       mime.types;
        default_type  application/octet-stream;

        server_names_hash_bucket_size 128;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        #limit_conn_zone $binary_remote_addr zone=perip:10m;
        ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.

        server_tokens off;
        access_log off;

            listen 80 default_server;
            server_name "Domain name can also be ip";
            index index.html index.htm index.php;
            root  /forest/www(Change to your own directory for placing code: Custom);

            #error_page   404   /404.html;

        location ~ [^/]\.php(/|$)
            try_files $uri =404;
           # fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;

            location /nginx_status
                stub_status on;
                access_log   off;

            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                expires      30d;

            location ~ .*\.(js|css)?$
                expires      12h;

            location ~ /\.
                deny all;

            access_log  /home/access.log;

    # Load additional configurations
    #include vhost/*.conf;


Modify php-fpm configuration file

[root@localhost ~]# vim /etc/php-fpm.d/www.conf
 Find the change so
    user =nginx
​    group=nginx

Prevent a test file in the set root directory

echo 'HELLO VAN!';


Start Server


[root@localhost ~]# systemctl start nginx.service

View Server Status

[root@localhost ~]# systemctl status nginx 


[root@localhost ~]# systemctl start php-fpm.service
[root@localhost ~]# systemctl status php-fpm.service 

Enter ip or a bound domain name in the browser and OK!

Ah Moh finally wrote it

Topics: Nginx MySQL RPM PHP