LAMP环境搭建与配置

一、介绍

LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架。
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
MySQL是一个关系型数据库,由瑞典AB公司开发,目前属于 Oracle 旗下产品,中小型数据库,表过大会出现IO性能瓶颈。
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。

二、Apache部署

1.依赖安装

yum install -y pcre-devel libxml2 expat-devel zlib zlib-devel

2.apr安装

wget https://www.apache.org/dist/apr/apr-1.7.0.tar.bz2
tar fx apr-1.7.0.tar.bz2
cd apr-1.7.0
./configure --prefix=/usr/local/apr
make && make install

3.apr-util安装

wget https://www.apache.org/dist/apr/apr-util-1.6.1.tar.bz2
tar fx apr-util-1.6.1.tar.bz2
cd apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make && make install

4.apr-iconv安装

wget https://www.apache.org/dist/apr/apr-iconv-1.2.2.tar.bz2
tar fx apr-iconv-1.2.2.tar.bz2
cd apr-iconv-1.2.2/
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make && make install

5.Apache安装

wget https://downloads.apache.org/httpd/httpd-2.4.46.tar.gz
tar fx httpd-2.4.46.tar.gz
cd httpd-2.4.46/
./configure --prefix=/usr/local/apache --enable-mpms-shared=all --with-mpm=event --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-remoteip --enable-proxy --enable-proxy-fcgi --enable-proxy-uwsgi --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-ab --enable-ssl --disable-userdir --enable-nonportable-atomics --disable-ipv6 --with-sendfile
make && make install
参数说明:

--prefix:指定安装路径
--enable-mpms-shared:启用MPM所有支持的模式
--with-mpm:默认使用enevt模式
--with-apr:指定apr的安装路径
--with-apr-util:指定apr-util的安装路径
--enable-so:允许运行时加载DSO模块
--enable-remoteip:支持基于客户端IP做访问控制
--enable-proxy:开启代理模块
--enable-proxy-fcgi:支持PHP网站
--enable-proxy-uwsgi:支持python网站
--enable-deflate:开启压缩
--enable-expires:开启客户端缓存
--enable-rewrite:开启URL重写
--enable-cache:开启服务器缓存
--enable-static-support:支持静态连接
--enable-static-ab:使用静态连接编译ab
--disable-userdir:禁用用户主目录提供页面访问
--enable-nonportable-atomics:对新式CPU支持
--disable-ipv6:禁用IPV6
--with-sendfile:开启sendfile 0复制机制
--enable-ssl:开启ssl

6.启动服务

/usr/local/apache/bin/httpd

7.验证

http://localhost
LAMP环境搭建与配置

三、MySQL部署

1.依赖安装

yum -y install ncurses-devel gcc- bzip2- bison

2.创建用户

useradd -s /sbin/nologin -r mysql

3.boost安装

wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar fx boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost

4.cmake安装

wget https://github.com/Kitware/CMake/releases/download/v3.6.0/cmake-3.6.0-Linux-x86_64.tar.gz
tar fx cmake-3.6.0-Linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/cmake-3.6.0-Linux-x86_64/ /usr/local/cmake
vim /etc/profile
CMAKE_HOME=/usr/local/cmake
PATH=$CMAKE_HOME/bin:$PATH
source /etc/profile

5.MySQL安装

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.33.tar.gz
mkdir -p /data/mysql/data
tar fx mysql-boost-5.7.33.tar.gz
cd mysql-5.7.33/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data/ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql -DWITH_DEBUG=0 -DWITH_EMBEDDED_SERVER=1 -DDOWNLOAD_BOOST=1 -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost
make && make install
参数说明:

-DCMAKE_INSTALL_PREFIX:指定安装路径
-DMYSQL_DATADIR:指定数据目录
-DMYSQL_UNIX_ADDR:指定sock文件路径
-DWITH_INNOBASE_STORAGE_ENGINE:安装Innodb存储引擎
-DWITH_MYISAM_STORAGE_ENGINE:安装myisam存储引擎
-DENABLED_LOCAL_INFILE:允许使用Load data命令从本地导入数据
-DEXTRA_CHARSETS:安装所有字符集
-DDEFAULT_CHARSET:默认字符集utf-8
-DDEFAULT_COLLATION:校验字符
-DMYSQL_USER:mysql用户名
-DWITH_DEBUG:关闭debu
-DWITH_EMBEDDED_SERVER:生成一个libmysqld.a(.so)的库
-DDOWNLOAD_BOOST:允许boost
-DENABLE_DOWNLOADS:允许下载boost库文件
-DWITH_BOOST:指定boost路径

6.安装后操作

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chown mysql.mysql /usr/local/mysql/ -R
chown mysq.mysql /data/mysql
ln -sf /usr/local/mysql/bin/* /usr/bin/

ln -sf /usr/local/mysql/lib/* /usr/lib/

ln -sf /usr/local/mysql/libexec/* /usr/local/libexec

ln -sf /usr/local/mysql/share/man/man1/* /usr/share/man/man1

ln -sf /usr/local/mysql/share/man/man8/* /usr/share/man/man8

7.修改配置文件

vim /etc/my.cnf

[mysqld]
datadir=/data/mysql/data
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysql.log
pid-file=/var/run/mysql.pid
!includedir /etc/my.cnf.d

8.初始化数据库

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/data/

9.启动服务

/etc/init.d/mysql start

四、PHP部署

1.依赖安装

yum install gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel gd net-snmp-*

2.libzip安装

wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar fx libzip-1.5.2.tar.gz
cd libzip-1.5.2/
mkdir build
cd build
cmake ..
make && make install

3.PHP安装

wget https://www.php.net/distributions/php-7.3.4.tar.bz2
tar fx php-7.3.4.tar.bz2
cd php-7.3.4/
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=mysqlnd --enable-pdo --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/ --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-pcre-regex --with-zlib --with-bz2 --enable-calendar --disable-phar --with-curl --enable-dba --with-libxml-dir --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-jis-conv --with-mhash --enable-mbstring --enable-opcache=yes --enable-pcntl --enable-xml --disable-rpath --enable-shmop --enable-sockets --enable-zip --enable-bcmath --with-snmp --disable-ipv6 --with-gettext --disable-rpath --disable-debug --enable-embedded-mysqli --with-mysql-sock=/usr/local/mysql/ --with-apxs2=/usr/local/apache/bin/apxs
make && make install
参数说明:

---prefix:安装路径
--with-config-file-path:配置文件路径
--with-mysqli:mysql支持及客户端设置
--enable-pdo:开启pdo
--with-iconv-dir:指定转码工具,各种字符集间的转换
--enable-fpm:支持php-fpm,允许以服务的方式启动PHP
--with-pcre-regex:支持pcre正则表达式
--with-zlib:支持压缩
--enable-calendar:支持日历
--disable-phar:关闭PHAR
--with-curl:支持curl
--enable-dba:开启dba函数支持
--with-libxml-dir:支持xml文件库 对xml读取和查询
--enable-ftp:支持ftp
--with-jpeg-dir:支持图片
--with-freetype-dir:支持字库
--enable-gd-jis-conv:支持gd库
--with-mhash:支持加密
--enable-opcache:开启opcache
--enable-pcntl:开启PHP进程控制支持   默认是关闭的
--enable-xml:允许xml文件
--disable-rpath:关闭额外的运行库文件
--enable-shmop:开启Shmop
--enable-sockets:打开 sockets 支持
--enable-bcmath:增加bcmath扩展的支持
--with-snmp:支持snmp
--disable-ipv6:关闭IPV6支持
--with-gettext:打开gnu 的gettext 支持,编码库用到
--disable-debug:关闭debug
--with-apxs2:作为apache模块运行

4.修改配置文件

#作为模块
cp php.ini-production /usr/local/php/etc/php.ini
vim /usr/local/php/etc/php.ini

[opcache]
;加载模块
zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20180731/opcache.so
;启用操作码缓存
opcache.enable=1
;共享内存大小,单位MB
opcache.memory_consumption=128 
;存储临时字符串的内存大小,单位MB
opcache.interned_strings_buffer=8
;哈希表中可存储的脚本文件数量上限
opcache.max_accelerated_files=4000
;每隔revalidate_freq 设定的秒数 检查脚本是否更新
opcache.validate_timestamps=1
;设置缓存的过期时间
opcache.revalidate_freq=60
;一次释放全部请求变量的内存
opcache.fast_shutdown=1
;如果启用,则在调用函数file_exists(), is_file() 以及 is_readable() 的时候, 都会检查操作码缓存
opcache.enable_file_override=0
;如果缓存处于非激活状态,等待多少秒之后计划重启
opcache.force_restart_timeout=180

#作为服务
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
vim /usr/local/php/etc/php-fpm.conf

[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
daemonize = yes
include=/usr/local/php/etc/php-fpm.d/*.conf

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

[www]
#开启php-fpm的执行用户
user = www
#开启php-fpm的所属组
group = www
#监听方式,可以写成listen = /tmp/php-fcgi.sock
listen = 127.0.0.1:9000
#监听socket listen的用户
listen.owner = www
#监听socket listen的组
listen.group = www
#监听socket listen权限
listen.mode = 0660
#启用进程方式
pm = dynamic
#最大开启子进程数
pm.max_children = 5
#开始启动多少子进程
pm.start_servers = 2
#最小空闲子进程
pm.min_spare_servers = 1
#最多空闲子进程
pm.max_spare_servers = 3
#进程处理多少个请求之后销毁重建
pm.max_requests = 500
#限定打开最大的文件数
rlimit_files = 1024

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

五、平台集成

1.PHP作为模块

vim /usr/local/apache/conf/httpd.conf

LoadModule php7_module        modules/libphp7.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

vim /usr/local/apache/htdocs/index.php

<?php
 phpinfo()
?>

/usr/local/apache/bin/apachectl restart
http:localhost
LAMP环境搭建与配置

2.PHP作为服务

#tcp sock模式
vim /usr/local/apache/conf/httpd.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
         SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

#unix sock模式
vim /usr/local/php/etc/php-fpm.d/www.conf

listen = /usr/local/php/etc/php-fpm.socket
listen.backlog = 511
listen.owner = www     
listen.group = www
listen.mode = 0660

vim /usr/local/apache/conf/httpd.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
<FilesMatch "\.php$">
    SetHandler  "proxy:unix:/usr/local/php/etc/php-fpm.socket|fcgi://localhost/"
</FilesMatch>
上一篇:LAMP环境的搭建和配置


下一篇:英语大作文三