Linux----------lamp組合應用平臺

1、工做原理

1.1 LAMP簡介

lamp/lnmp 其實就是由Linux+Apache/Nginx+Mysql/MariaDB+Php/Perl/Python的一組動態網站或者服務器的開源軟件,除Linux外其它各部件自己都是各自獨立的程序,可是由於常常被放在一塊兒使用,擁有了愈來愈高的兼容度,共同組成了一個強大的Web應用程序平臺。html

web服務器的資源分爲兩種,靜態資源和動態資源
靜態資源就是指靜態內容,客戶端從服務器得到的資源的表現形式與原文件相同。能夠簡單的理解爲就是直接存儲於文件系統中的資源
動態資源則一般是程序文件,須要在服務器執行以後,將執行的結果返回給客戶端mysql

CGI:
程序=指令+數據
指令:代碼文件
數據:數據存儲系統、文件
CGI:Common Gateway Interface
可讓一個客戶端,從網頁瀏覽器經過http服務器向執行在網絡服務器上的程序傳輸數據;CGI描述了客戶端和服務器程序之間傳輸的一種標準
請求流程:
Client -- (httpd) --> httpd -- (cgi) -->application server (program file) -- (mysql) --> mysql
php: 腳本編程語言、嵌入到html中的嵌入式web程序語言
基於zend編譯成opcode(二進制格式的字節碼,重複運行,可省略編譯環境)linux

LAMP :
httpd :接受用戶的web請求;靜態資源則直接響應;動態資源爲php腳本,對此類資源的請求將交由php來運行
php:運行php程序
mysql:數據管理系統web

1.2 http與php結合的方式

CGI
FastCGI
modules (將php編譯成爲httpd的模塊,默認方式)
MPM:
prefork: libphp5.so
event, worker: libphp5-zts.sosql

1.3 簡單快速部署LAMP

···
CentOS 7:
Modules:httpd, php, php-mysql, mariadb-server
FastCGI:httpd, php-fpm, php-mysql, mariadb-server
CentOS 6:
Modules:httpd, php, php-mysql, mysql-server
FastCGI:默認不支持
···數據庫

1.31 yum安裝

···
CentOS 6:
yum install httpd, php, mysql-server, php-mysql
service httpd start
service mysqld startapache

CentOS 7:
yum install httpd, php, php-mysql, mariadb-server
systemctl start httpd.service
systemctl start mariadb.service
注意:要使用prefork模型
···編程

1.32 編譯安裝

編譯安裝http PHP mysql/mariadbvim

2、常見LAMP應用

PhpMyAdmin是一個以PHP爲基礎,以Web-Base方式架構在網站主機上的MySQL的數據庫管理工具,讓管理者可用Web接口管理MySQL數據庫

WordPress是一種使用PHP語言開發的博客平臺,用戶能夠在支持PHP和MySQL數據庫的服務器上架設屬於本身的網站。也可把WordPress看成一個內容管理系統(CMS)來使用

2.1 部署phpmyadmin

yum -y install httpd mariadb-server php php-mysql
systemctl start httpd
systemctl start mariadb
mysql_secure_installation
下載:https://www.phpmyadmin.net/downloads/
tar xvf phpMyAdmin-4.0.10.20-all-languages.tar.xz
cd /var/www/html
cd phpadmin/
cp config.sample.inc.php config.inc.php
 yum -y install php-mbstring
systemctl reload httpd

2.2 部署wordpress

下載地址:官網:https://cn.wordpress.org/
解壓縮WordPress博客程序到網頁站點目錄下
unzip wordpress-4.3.1-zh_CN.zip
新建wpdb庫和wpuser用戶
mysql> create database wpdb;
mysql> grant all privileges on wpdb.* to wpuser@'%' identified by "wppass";
打開http://webserver/wordpress進行頁面安裝

注意wordpress目錄權限
Setfacl –R –m u:apache:rwx wordpress

2.3 編譯php-xcache加速訪問

CentOS7編譯Php-xcache加速訪問
官網:http://xcache.lighttpd.net/wiki/ReleaseArchive
安裝方法
rpm包:來自epel源
編譯安裝
編譯安裝

yum -y install php-devel
下載並解壓縮xcache-3.2.0.tar.bz2
phpize 生成編譯環境
cd xcache-3.2.0
./configure --enable-xcache --with-php-
config=/usr/bin/php-config
make && make install
cp xcache-3.2.0/xcache.ini  /etc/php.d/
systemctl restart httpd.service

3、Centos7編譯安裝LAMP

在centos7上編譯安裝LAMP:
···
mairadb:通用二進制格式,mariadb-5.5.56
httpd:編譯安裝,httpd-2.4.25
php5:編譯安裝,php-5.6.30
phpMyAdmin:安裝phpMyAdmin-4.4.15.10-all-languages
Xcache:編譯安裝xcache-3.2.0
php5.4依賴於mariadb-devel包
順序:mariadb-->httpd-->php
···

3.1二進制安裝mariadb

ftp://172.16.0.1/pub/Source/7.x86_64/mariadb/mariadb-5.5-46-linux-x86_64.tar.gz
tar  -xvf mariadb-5.5-46-linux-x86_64.tar.gz -C /usr/local
cd /usr/local
ls -sv mariadb-5.5.46-linux-x86_64 mysql
cd mysql
chown -R root.mysql /usr/local/mysql
mkdir /opt/data -p
chown -R mysql.mysql /opt/data
mkdir /etc/mysql
vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin/:$PATH
cp support-files/my-large.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[mysqld]加三行
datadir =/opt/data
innodb_file_per_table = ON
skip_name_resolve = ON
scripts/mysql_install_db --user=mysql --datadir=/opt/data
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
/usr/local/mysql/bin/mysql 測試是否成功

3.2 編譯安裝httpd-2.4

groupadd  -r apache
useradd -r -s /sbin/nologin -g apache apache 
yum install pcre-devel apr-devel apr-util-devel openssl-devel
tar -xvf  httpd-2.4* -C /usr/src/
cd /usr/src/httpd-2.4*/
./configure --prefix=/usr/local/apache --
sysconfdir=/etc/httpd --enable-so --enable-ssl --
enable-rewrite --with-zlib --with-pcre --with-
apr=/usr --with-apr-util=/usr --enable-modules=most
--enable-mpms-shared=all --with-mpm=prefork
make -j 2 && make install
echo 'export PATH=/usr/local/apache/bin/:$PATH' > /etc/profile.d/http.sh
source /etc/profile.d/http.sh
sed 's/#ServerName www.example.com:80/ServerName www.example.com:80/g' /etc/httpd/httpd.conf

注意httpd2.2作lamp,php版本必須爲5版本

3.3 編譯安裝php-5.6

官網下載源包
tar  php-5.6*  -C /usr/src/
yum install libxml2-devel bzip2-devel libmcrypt-devel -y
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
make -j 2 && make install

3.4 編譯安裝php-7.1.7

官網下載源包
tar  php-7.1.7*  -C /usr/src/
cd /usr/src/php-7.1.7/
./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-
libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --
with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo

注意:php-7.0以上版本使用--enable-mysqlnd --with-mysqli=mysqlnd ,原--with-mysql再也不支持

相關文章
相關標籤/搜索