LAMP環境搭建與配置

1、介紹

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開發領域。php

2、Apache部署

1.依賴安裝

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

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 installpython

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 installmysql

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 installc++

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
參數說明:git

--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/httpdgithub

7.驗證

http://localhost
LAMP環境搭建與配置正則表達式

3、MySQL部署

1.依賴安裝

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

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

4、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

5、平臺集成

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>
相關文章
相關標籤/搜索