搭建 LAMP 環境

曾經的經典架構。

httpd

cd /home/yuzx/data/download
tar -xf httpd-2.4.10.tar.gz
cd httpd-2.4.10
./configure --prefix=/home/yuzx/server --with-apr=/home/yuzx/server --with-apr-util=/home/yuzx/server --enable-so
make && make install

# svn 編譯選項
--enable-mod-activation --with-apxs=/home/yuzx/server/bin/apxs --with-apache-libexecdir=/home/yuzx/server/modules

php

#### fedora ####
yum -y install re2c libmcrypt

#### ubuntu/debian ####
apt-get -y install re2c libmcrypt4 libmcrypt-dev

cd /home/yuzx/data/download
tar -xf php-5.6.4.tar.gz
cd /home/yuzx/data/download/php-5.6.4
./configure --prefix=/home/yuzx/server/php-5.6.4 --with-apxs2=/home/yuzx/server/httpd/bin/apxs --with-mysql
make && make test
make install
ln -s /home/yuzx/server/php-5.6.4 /home/yuzx/server/php

# php.ini ?
cat >> /home/yuzx/server/httpd/htdocs/a.php << EOF
<?php
echo "Hello World";
echo phpinfo();
?>
EOF

# 訪問:
http://localhost/a.php
# 或者:
/home/yuzx/server/php/bin/php /home/yuzx/server/httpd/htdocs/a.php | grep php.ini
# 輸出 Configuration File (php.ini) Path => /home/yuzx/server/php/lib

# 配置 php - 開發
cp php.ini-development /home/yuzx/server/php/lib/php.ini
# 配置 php - 產品
cp php.ini-production /home/yuzx/server/php/lib/php.ini

# 編輯 httpd.conf 加載 php,要確保 libphp5.so 存在
vi /home/yuzx/server/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so

# 告訴 apache 將特定的擴展名作爲 PHP,爲避免上傳或創建類似 exploit.php.jpg 的文件並被當做 PHP 執行,不再用 Apache 的 AddType 指令來設置,參考下面例子
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

# 如果允許 .php, .php2, .php3, .php4, .php5, .php6, .phtml 文件,則:
<FilesMatch "\.ph(p[2-6]?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

# php 源碼配置,產品環境不需要
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

# 有風險的 AddType 方式
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# 重啓 apache
/home/yuzx/server/httpd/bin/apachectl -k stop
/home/yuzx/server/httpd/bin/apachectl -k start

# 共享擴展庫,必須經過編譯,安裝,然後加載。在 php.ini 中用 extension PHP 指令加載共享擴展庫,或用 dl() 函數加載
# 擴展模塊根目錄
cd /home/yuzx/data/download/php-5.6.4/ext/mysqli
# 用 phpize 生成 configure
/home/yuzx/server/php/bin/phpize
./configure --with-php-config=/home/yuzx/server/php/bin/php-config
make clean && make && make install

cd /home/yuzx/data/download/php-5.6.4/ext/mbstring
/home/yuzx/server/php/bin/phpize
./configure --with-php-config=/home/yuzx/server/php/bin/php-config
make clean && make && make install

cd /home/yuzx/data/download/php-5.6.4/ext/zip
/home/yuzx/server/php/bin/phpize
./configure --with-php-config=/home/yuzx/server/php/bin/php-config
make clean && make && make install

cd /home/yuzx/data/download/php-5.6.4/ext/gettext
/home/yuzx/server/php/bin/phpize
./configure --with-php-config=/home/yuzx/server/php/bin/php-config
make clean && make && make install

yum -y install libmcrypt libmcrypt-devel

cd /home/yuzx/data/download/php-5.6.4/ext/mcrypt
/home/yuzx/server/php/bin/phpize
./configure --with-php-config=/home/yuzx/server/php/bin/php-config
make clean && make && make install

vi /home/yuzx/server/php/lib/php.ini
# 查找 Dynamic Extensions 塊
:/Dynam*
# 添加,mysql.so 和 mysqlnd.so 不需要添加
extension=mysqli.so
extension=mbstring.so
extension=zip.so
extension=gettext.so

# 執行下 php,看看是否報錯,例如:*.sq 找不到之類
/home/yuzx/server/php/bin/php
# 查看 php 加載的 module
/home/yuzx/server/php/bin/php -m

# 添加擴展需要重啓 apache
/home/yuzx/server/httpd/bin/apachectl -k stop
/home/yuzx/server/httpd/bin/apachectl -k start

phpMyAdmin

# 中文幫助
http://www.phpmyadmin.net/localized_docs/zh_CN/Documentation.html

cd /home/yuzx/server/httpd/htdocs
unzip /home/yuzx/data/download/phpMyAdmin-4.3.4-all-languages.zip
ln -s phpMyAdmin-4.3.4-all-languages phpmyadmin

# 訪問:
http://127.0.0.1/phpmyadmin/index.php
http://10.0.0.9:8888/phpmyadmin/index.php

# 有時,會提示無法登陸 mysql 服務器,因爲沒有解析 localhost 域名導致:
$cfg['Servers'][$i]['host'] = 'localhost';
改爲:
$cfg['Servers'][$i]['host'] = '127.0.0.1';

禁止Apache顯示目錄結構
===================
<Directory "d:\dx">
  Options Indexes FollowSymLinks
  Allow....
</Directory>

將 Indexes 選項去掉即可
Indexes 的作用:當該目錄下沒有 index.html 文件時,就顯示目錄結構,去掉 Indexes,Apache 就不會顯示該目錄的列表了。

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

增加 index.php
如果 url 訪問爲 http://10.0.0.9:8888/phpmyadmin/,即:一個目錄,會定向到 index.html 或 index.php

xdebug

cd /home/data/download/
tar -xf xdebug-2.2.5.tgz
cd xdebug-2.2.5
# 注意 php 版本
/home/server/php/bin/phpize
./configure --with-php-config=/home/server/php/bin/php-config --enable-xdebug
make && make install

vim /home/server/php/lib/php.ini

[xdebug]
zend_extension="/home/server/php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
# port 9000 is occupied by FPM, but you can set another
xdebug.remote_port=9000
xdebug.remote_autostart=1
# you can just leave it empty
xdebug.idekey=

/home/server/php/bin/php -m

Linux 下調試很好用

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