php編譯安裝及fastcgi使用

LAMP的PHP

這章我們講PHP,和fastcgi

下面鏈接是LAMP的AM,apache和mariadb

http://rexchow.blog.51cto.com/11619161/1886441


首先準備幾個安裝包

libmcrypt-2.5.8.tar.gz

wget http://down1.chinaunix.net/distfiles/libmcrypt-2.5.7.tar.gz

php-5.6.29.tar.gz 

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


1、解決依賴關係

如果想讓編譯的php支持mcrypt擴展,需安裝libmcrypt libmcrypt-devel 或者編譯安裝

#tar -zxvf libmcrypt-2.5.7.tar.gz 

#cd libmcrypt-2.5.7 

#./configure

#make && make install 




2、編譯安裝php-5.6.29 

#tar zxvf php-5.6.29.tar.bz2 

#cd php-5.6.29 

./configure\
 --prefix=/usr/local/php\
 ##php路徑
 --with-mysql=/usr/local/mysql\
 ##mysql路徑
 --with-openssl=/usr/local/openssl1u\
 ##openssl路徑
 --with-mysqli=/usr/local/mysql/bin/mysql_config \
 ##mysql配置文檔
 --enable-mbstring --with-freetype-dir \
 --with-jpeg-dir --with-png-dir --with-zlib \
 ##支持圖文件
 --with-libxml-dir=/usr\
 ##支持xml庫
 --enable-xml  --enable-sockets \
 ##支持xml、套接字
 --with-apxs2=/usr/local/httpd2.4/bin/apxs \
 ##apxs
 --with-mcrypt  --with-config-file-path=/etc \
 --with-config-file-scan-dir=/etc/php.d \
 --with-bz2  --enable-maintainer-zts


./configure\

 --prefix=/usr/local/php\

 --with-mysql=/usr/local/mysql\

 --with-openssl=/usr/local/openssl1u\

 --with-mysqli=/usr/local/mysql/bin/mysql_config \

 --enable-mbstring --with-freetype-dir \

 --with-jpeg-dir --with-png-dir --with-zlib \

 --with-libxml-dir=/usr\

 --enable-xml  --enable-sockets \

 --with-apxs2=/usr/local/httpd2.4/bin/apxs \

 --with-mcrypt  --with-config-file-path=/etc \

 --with-config-file-scan-dir=/etc/php.d \

 --with-bz2  --enable-maintainer-zts



# make  && make install





爲php提供配置文件:

# cp php.ini-production /etc/php.ini


3、 編輯apache配置文件httpd.conf,以apache支持php

 

 # vim /etc/httpd/httpd.conf

 1、添加如下二行

   AddType application/x-httpd-php  .php

   AddType application/x-httpd-php-source  .phps


wKiom1h3OLXhGOBpAABACNQQ1Ew247.png


 2、定位至DirectoryIndex index.html 

   修改爲:

    DirectoryIndex  index.php  index.html

 3、添加模塊


 LoadModule php5_module modules/libphp5.so

wKioL1h3OLWzntkUAABKnkZcloA537.png


j_0003.gif


4、測試是否正常


wKiom1h3PKLS0pXMAABS1zFNCA8002.png

在數據添加權限

mysql -u賬號 -p密碼

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'rexchow' WITH GRANT OPTION;
##授權root賬號訪問%=(本地、IP、hostname)
FLUSH PRIVILEGES;
更新權限



#cd /usr/local/apache/htdocs

#mv index.html index.php

#vim index.php     清除內容

<?php

$conn=mysql_connect('192.168.230.202','root','rexchow');

  if ($conn)

    echo "Connect Success...";

  else

    echo "Connect Failure...";


 phpinfo();

?>



打開瀏覽器測試、走到這步,已經完成lamp的編譯安裝任務

那麼我們開始新的路線,建一個網站,首先下個模板

j_0056.gif


我們在體驗個小遊戲:

1、建立wordpress

2、給服務器做壓力測試



##下週wordpress

wget https://cn.wordpress.org/wordpress-4.7.1-zh_CN.zip 
##下載 
unzip wordpress-4.7.1-zh_CN.zip  
##解壓 
mv wordpress /usr/local/httpd2.4/htdocs   
##將wordprss複製到apache服務器下的根目錄


先安裝個mysql管理器


yum install phpmyadmin -y




$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5340 to server version: 3.23.54
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wp"@"localhost" IDENTIFIED BY "wp";
Query OK, 0 rows affected (0.00 sec)
  
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT
Bye
$


##創建wordpress數據,及給予改wp授權該數據管理權限。

從網上抄來的一段精華內容:

用戶管理

mysql>use mysql;

查看

mysql> select host,user,password from user ;

創建

mysql> create user  zx_root   IDENTIFIED by 'xxxxx';   //identified by 會將純文本密碼加密作爲散列值存儲

修改

mysql>rename   user  feng  to   newuser;//mysql 5之後可以使用,之前需要使用update 更新user表

刪除

mysql>drop user newuser;   //mysql5之前刪除用戶時必須先使用revoke 刪除用戶權限,然後刪除用戶,mysql5之後drop 命令可以刪除用戶的同時刪除用戶的相關權限

更改密碼

mysql> set password for zx_root =password('xxxxxx');

 mysql> update  mysql.user  set  password=password('xxxx')  where user='otheruser'

查看用戶權限

mysql> show grants for zx_root;

賦予權限

mysql> grant select on dmc_db.*  to zx_root;

回收權限

mysql> revoke  select on dmc_db.*  from  zx_root;  //如果權限不存在會報錯

 

上面的命令也可使用多個權限同時賦予和回收,權限之間使用逗號分隔

mysql> grant select,update,delete  ,insert  on dmc_db.*  to  zx_root;

如果想立即看到結果使用

flush  privileges ;

命令更新 

 

設置權限時必須給出一下信息

1,要授予的權限

2,被授予訪問權限的數據庫或表

3,用戶名

grant和revoke可以在幾個層次上控制訪問權限

1,整個服務器,使用 grant ALL  和revoke  ALL

2,整個數據庫,使用on  database.*

3,特點表,使用on  database.table

4,特定的列

5,特定的存儲過程

 

user表中host列的值的意義

%              匹配所有主機

localhost    localhost不會被解析成IP地址,直接通過UNIXsocket連接

127.0.0.1      會通過TCP/IP協議連接,並且只能在本機訪問;

::1                 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1






登錄網頁http://192.168.230.202/wordpress

即有安裝提示:

按照提示附帶index.php,驗證wordpress賬號登錄是否正常

<?php
$conn=mysql_connect('127.0.0.1','wp','wp');
  if ($conn)
    echo "Connect Success...";
  else
    echo "Connect Failure...";
?>

我的localhost 被鎖了,原因還沒有查出來。則用127.0.0.1代替


安裝wordpress的提示頁,需要你把配置文檔複製到wordpress目錄下的wp-config.php文件內


wKiom1h-DcWQTDmLAAC0i2sknrA635.png


郵箱需要填上哦j_0076.gif




登錄進去,直接點擊發布,咱們實用性網頁發佈完成。


wKioL1h-DlbAlvtdAALFAPC8EXc228.png






j_0054.gif

來來,開始ab進行壓力測試

測試機器,用的192.168.230.204

http://www.jianshu.com/p/43d04d8baaf7

##命令使用詳細說明



我們現在只用下面的命令

輸入命令

ab -n 100 -c 10 http://test.com/


其中-n表示請求數,-c表示併發數
wKioL1h-D8GwezT_AACQuMGgNIU035.png


響應非常快,原因是我們用的壓力太小了

wKioL1h-ELXTKOZfAABojZ-WGBk837.png

10000個請求 999個併發,

吞吐率2784 用戶平均請求等待時間 355

服務器平均請求處理時間 0.359ms




咱們進行下一個故事,fastcgi模塊

把服務器速度加速優化!~




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章