centos 7--LNMP环境部署

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

系统环境:centos 7.3

软件环境:mysql 5.6.12 采用二进制免编译安装包

                 php 7.17 增加扩展模块phalcon

                 nginx 1.12.1 增加扩展模块 nginx_http_concat_module

# 安装依赖包

yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses curl openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel libmcrypt libmcrypt-devel libaio

#============== ========安装MYSQL 5.6.12==========================     

#下载MYSQL 5.6.12

cd /usr/local/src 

wget https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz


#解压MYSQL

tar -zxvf /usr/local/src/mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz -C /usr/local


#添加mysql用户,不允许登陆系统

useradd -s /sbin/nologin mysql


#更改mysql文件名

cd /usr/local

mv mysql-5.6.12-linux-glibc2.5-x86_64 mysql


#创建mysql数据库目录

mkdir -pv /data/mysql

chown -R mysql.mysql /data/mysql


#初始化MYSQL

cd /usr/local/mysql

./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql


#创建MYSQL 主配置文件

mv /etc/my.cnf /etc/my.cnf.bak

cat > /etc/my.cnf <<EOF

[mysql]

default-character-set=utf8 

socket=/tmp/mysql.sock

[mysqld]

skip-name-resolve

port = 3306 

socket=/tmp/mysql.sock

basedir=/usr/local/mysql

datadir=/data/mysql

max_connections=200

character-set-server=utf8

default-storage-engine=INNODB 

lower_case_table_names=1

max_allowed_packet=16M

EOF


#更改启动脚本,并添加到开机启动

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

/etc/init.d/mysqld start

chkconfig --add mysqld

chkconfig mysqld on

netstat -tulnp |grep mysql   //查看是否监听3306端口


#====================安装php 7.17==============================

#下载PHP 7.1.7

cd /usr/local/src

 wget http://cn2.php.net/distributions/php-7.1.7.tar.gz


#解压PHP:

tar -zxvf php-7.1.7.tar.gz


#添加php-fpm 用户,不允许登陆系统

useradd -s /sbin/nologin php-fpm


#进入PHP解压目录,配置编译参数:

cd /usr/local/src/php-7.1.7 

./configure '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--with-config-file-scan-dir=/usr/local/php/etc/conf.d' '--enable-fpm' '--with-fpm-user=php-fpm' '--with-fpm-group=php-fpm' '--enable-soap' '--with-openssl' '--with-openssl-dir' '--with-mcrypt' '--with-pcre-regex' '--with-zlib' '--with-iconv' '--with-bz2' '--enable-calendar' '--with-curl' '--with-cdb' '--enable-dom' '--enable-exif' '--with-pcre-dir' '--enable-ftp' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-gettext' '--with-gmp' '--with-mhash' '--enable-mbstring' '--with-libmbfl' '--with-onig' '--enable-pdo' '--with-pdo-mysql=mysqlnd' '--with-zlib-dir' '--with-readline' '--enable-session' '--enable-shmop' '--enable-simplexml' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-wddx' '--with-libxml-dir' '--with-xsl' '--enable-zip' '--enable-mysqlnd' '--with-mysql-sock=/tmp/mysql.sock' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--without-pear'  


#编译及安装

make && make install


#复制Php 主配置:

cp php.ini-production /usr/local/php/etc/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf


#创建php-fpm 主配置文件:

sed -i '1,$s#;pid = run/php-fpm.pid#pid = /usr/local/php/var/run/php-fpm.pid#g' /usr/local/php/etc/php-fpm.conf

sed -i '1,$s#;error_log = log/php-fpm.log#error_log = /usr/local/php/var/log/php-fpm.log#g' /usr/local/php/etc/php-fpm.conf

echo "include=/usr/local/php/etc/php-fpm.d/*.conf" >> /usr/local/php/etc/php-fpm.conf


cat <<EOF > /usr/local/php/etc/php-fpm.d/www.conf

[global]

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log

[www]

listen = 127.0.0.1:9000

user = php-fpm

group = php-fpm

listen.owner = nginx

listen.group = nginx

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

EOF


#测试php-fpm 配置:

/usr/local/php/sbin/php-fpm -t


#centos 7 systemctl启动php-fpm 

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

systemctl enable php-fpm.service

systemctl start php-fpm.service


#关闭php 版本信息:

sed -i 's/expose_php = On/expose_php = Off/g' /usr/local/php/etc/php.ini


#下载phalcon模块

cd /usr/local/src

git clone https://github.com/dreamsxin/cphalcon7.git

cd cphalcon7/ext


#准备环境,配置编译参数

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config >> $LOG_INS 2>&1


#编译及安装

make && make install


#修改php.ini,增加扩展模块

mkdir /usr/local/php/etc/conf.d

echo "extension = phalcon.so" >> /usr/local/php/etc/conf.d/phalcon.ini

 

#重新加载配置

/usr/local/php/sbin/php-fpm -t

systemctl restart php-fpm.service


#===================安装nginx 1.12.1 ==============================         

#下载

cd /usr/local/src && wget http://nginx.org/download/nginx-1.12.1.tar.gz && git clone git://github.com/alibaba/nginx-http-concat.git 

#解压:

tar zxf nginx-1.12.1.tar.gz


#创建nginx运行用户

useradd -s /sbin/nologin nginx


#进入解压目录,配置编译参数:

cd ./nginx-1.12.1 && ./configure --prefix=/usr/local/nginx --with-http_realip_module  --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --add-module=/usr/local/src/nginx-http-concat 


#编译及安装

make && make install


#设置软链接

ln -s /usr/local/lib/libmaxminddb.so.0 /usr/lib64

ln -s /usr/local/lib/libprofiler.so.0 /usr/lib64

ln -s /usr/local/lib/libunwind.so.8 /usr/lib64


#检测初始化完成的nginx 配置是否有问题

/usr/local/nginx/sbin/nginx  -t


#centos 7创建nginx启动脚本

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

[Unit]

Description=nginx

Documentation=http://nginx.org/en/docs/

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

Wants=network-online.target


[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s TERM $MAINPID


[Install]

WantedBy=multi-user.target

EOF


#将nginx加入到开机启动

systemctl enable nginx.service


#备份nginx主配置文件

 cp /usr/local/nginx/conf/nginx.conf{,.bak}


#重新nginx 配置:

cat << EOF > /usr/local/nginx/conf/nginx.conf

user nginx nginx;

error_log /var/log/nginx_error.log crit;

pid /usr/local/nginx/logs/nginx.pid;

worker_processes  auto;

worker_rlimit_nofile 65535;

events {

    use epoll;

    worker_connections  65535;

}

http {

    include      mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server_tokens off;

    charset utf-8;

    tcp_nopush on;

    tcp_nodelay on;

    gzip on;

    gzip_min_length 100;

    gzip_buffers 4 16k;

    gzip_http_version 1.0;

    gzip_comp_level 6;

    gzip_types text/plain application/x-javascript text/css application/xml;

    gzip_vary on;

    server {

        listen      80;

        server_name  localhost;

        location / {

            root  html;

            index  index.html index.htm index.php;

        }

        error_page  500 502 503 504  /50x.html;

        location = /50x.html {

            root  html;

        }

        location ~ \.php\$ {

            root          html;

            fastcgi_pass  127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

}

EOF


#创建PHP测试文件:

echo "<?php  echo phpinfo();  ?>" >/usr/local/nginx/html/index.php


#备份index.html:

mv /usr/local/nginx/html/index.html{,.bak}


#启动nginx:

#service nginx start

systemctl start nginx.service


#清空防火墙配置

iptables -F


#设置nginx、mysql 及php 的环境变量:

echo "PATH=$PATH:/usr/local/php/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:/usr/local/php/sbin" >> /etc/profile


#刷新环境变量配置,使其立即生效:

source /etc/profile


浏览器访问ip,会出现php的相关信息。


本文转自 IT_外卖小哥  51CTO博客,原文链接:http://blog.51cto.com/jinlong/1952256


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
关系型数据库 MySQL 应用服务中间件
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
|
25天前
|
关系型数据库 应用服务中间件 Linux
Linux云服务器如何搭建LNMP环境
LNMP环境是Linux系统中常用的Web服务架构,由Linux、Nginx、MySQL/MariaDB和PHP组成,适用于高效托管动态网站。本文以CentOS 7为例,详细介绍了LNMP环境的搭建步骤,包括Nginx、MariaDB和PHP的安装与配置,以及最终通过创建`index.php`文件验证环境是否成功部署。具体操作涵盖配置YUM仓库、安装服务、编辑配置文件、启动服务等关键步骤,确保用户能够顺利搭建并运行LNMP环境。
47 1
Linux云服务器如何搭建LNMP环境
|
6月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
498 0
|
2月前
|
网络协议 Java 应用服务中间件
centos7环境下tomcat8的安装与配置
本文介绍了在Linux环境下安装和配置Tomcat 8的详细步骤。首先,通过无网络条件下的文件交互软件(如Xftp 6或MobaXterm)下载并解压Tomcat安装包至指定路径,启动Tomcat服务并测试访问。接着,修改Tomcat端口号以避免冲突,并部署Java Web应用项目至Tomcat服务器。最后,调整Linux防火墙规则,确保外部可以正常访问部署的应用。关键步骤包括关闭或配置防火墙、添加必要的端口规则,确保Tomcat服务稳定运行。
|
5月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
1011 5
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
6月前
|
Oracle Java 关系型数据库
CentOS 7.6操作系统部署JDK实战案例
这篇文章介绍了在CentOS 7.6操作系统上通过多种方式部署JDK的详细步骤,包括使用yum安装openjdk、基于rpm包和二进制包安装Oracle JDK,并提供了配置环境变量的方法。
363 80
|
4月前
|
Oracle 关系型数据库 MySQL
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
Centos7下图形化部署单点KFS同步工具并将Oracle增量同步到KES
|
6月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
1009 4
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
5月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
402 0
虚拟机centos7.9一键部署docker
|
5月前
|
安全 Linux 数据库连接
CentOS 7环境下DM8数据库的安装与配置
【10月更文挑战第16天】本文介绍了在 CentOS 7 环境下安装与配置达梦数据库(DM8)的详细步骤,包括安装前准备、创建安装用户、上传安装文件、解压并运行安装程序、初始化数据库实例、配置环境变量、启动数据库服务、配置数据库连接和参数、备份与恢复、以及安装后的安全设置、性能优化和定期维护等内容。通过这些步骤,可以顺利完成 DM8 的安装与配置。
679 0