Linux lamp搭建php
1、安裝mysqlhtml
一、把mysql的包下載到這個目錄下mysql
cd /usr/local/src/ linux
二、下載包c++
wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gzsql
注意:上面的地址是32位機器用的,若是你的機器是64位,下載這個包(http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz)安裝方法是同樣的。apache
須要安裝wget包,默認沒有安裝vim
[root@mysql src]# yum install -y wget瀏覽器
三、解壓包bash
tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
四、把解壓出來的文件移動到/usr/local/目錄下,而且更名爲mysql,這一步須要注意,在移動的時候要確保/usr/local/目錄下沒有mysql這個名稱,
若是有,就會把文件移動到mysql目下了,這樣子是錯誤的
[root@mysql src]# mv mysql-5.1.40-linux-x86_64-icc-glibc23 /usr/local/mysql
五、建立一個mysql用戶,而且禁止登錄
useradd -s /sbin/nologin mysql
六、進入到/usr/local/mysql下,好像不進入這個目錄也是能夠的
cd /usr/local/mysql
七、建立 /data/mysql 目錄
mkdir -p /data/mysql
八、更改/data/mysql 目錄的屬主和屬組
chown -R mysql:mysql /data/mysql
九、在當前目錄下初始化(當前目錄指的上就是/usr/local/mysql目錄)
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
這一步作的是出錯了,原來是沒有安裝共享庫,因此這一步若是出錯,查看下是否有安裝共享庫
安裝共享庫:yum install compat-libstdc++-33
完成以後查看/date/mysql下回生成兩個目錄:mysql和test目錄
十、在當前目錄下(/usr/local/mysql目錄)拷貝模板到/etc/目錄下,而且更名爲my.cnf
cp support-files/my-large.cnf /etc/my.cnf
使用vim進入my.cnf文件中關閉如下功能:
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
十一、拷貝啓動文件到/etc/init.d/下命名爲mysqld(也是在/usr/local/mysql目錄下)
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld (這一步不作好像也能夠)
十二、修改/etc/init.d/mysqld文件
vim /etc/init.d/mysqld #修改datadir
修改如下配置:
basedir=/usr/local/mysql #定義了mysql所在的路徑
datadir=/data/mysql #數據存放路徑
1三、加入到系統列表
chkconfig --add mysqld
1四、設定開機啓動
chkconfig mysqld on
1五、重啓mysql
/etc/init.d/mysql start
[root@mysql mysql]# /etc/init.d/mysqld start
Starting MySQL... SUCCESS! #這個提示表示mysql已經啓動成功
1六、使用ps aux |grep mysql來檢測看看是否有mysql進程
使用netstat -lnp來查看是否有3306端口
2、安裝apache
一、下載apache(也是下載到/usr/local/src/目錄下)
wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz
二、解壓apache包
tar zvxf httpd-2.2.16.tar.gz
三、進入到httpd-2.2.16目錄
cd httpd-2.2.16
[root@mysql src]# cd httpd-2.2.16
四、開始編譯,若是沒有文檔,進入到INSTALL文件中看看幫助(此文檔在/usr/local/src/httpd-2.2.16目錄下)
INSTALL文件中須要查看的信息:
$ ./configure --prefix=PREFIX #指定安裝的目錄在哪裏
$ make
$ make install
$ PREFIX/bin/apachectl startt
五、配置編譯參數(/usr/local/src/httpd-2.2.16目錄下)
./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-so
--prefix=:安裝路徑
--enable-mods-shared=most:安裝的模塊大可能是以共享的方式去安裝的,而且是動態的,由於使用
靜態的耗費內存
--enable-so :啓用DOS
這一步時報錯,信息以下:提示須要安裝gcc
configure: error: in `/usr/local/src/httpd-2.2.16/srclib/apr':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
configure failed for srclib/apr
須要安裝gcc
安裝gcc:yum install gcc-c++
報錯信息:
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
解決辦法,安裝如下包:
yum install -y zlib-devel
六、編譯
make && make install 能夠寫在同一行,可是要使用兩個&&符號隔開。也能夠分開寫
make install
七、編譯完成以後進入/usr/local/apache2/目錄查看
進入/usr/local/apache2/目錄以後,使用/bin/ls 查看modules目錄,這個目錄存放的是模塊
八、檢查
[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -t :檢查配置文件是否有錯誤
[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -l :查看核心的
[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/httpd -M :顯示全部加載的模塊
[root@mysql httpd-2.2.16]# cat /usr/local/apache2/build/config.nice :查看歷史編譯配置
九、啓動apache
[root@mysql httpd-2.2.16]# /usr/local/apache2/bin/apachectl start
/usr/local/apache2/bin/apachectl start/stop/restart
/usr/local/apache2/bin/apachectl graceful/graceful-stop
start :用於啓動apache服務,首先檢查apache的配置文件是否有誤,沒有錯誤啓動服務,若有誤則輸出錯誤信息;
stop :用於中止apache服務器,若是已經中止了apache服務器則會報錯;
restart :從新啓動apache服務器,若是apache沒有啓動則啓動它;
graceful :和start參數同樣,區別在於它不會中斷正在處理的鏈接,也不會關閉日誌。推薦使用。
graceful-stop :和stop參數同樣,區別在於它不會中斷正在處理的鏈接,也不會關閉日誌,推薦使用。
十、查看是否啓動了
[root@mysql apache2]# ps aux |grep httpd root 58464 0.0 0.2 124448 2524 ? Ss 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58465 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58466 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58467 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58468 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start daemon 58469 0.0 0.1 124448 1736 ? S 20:35 0:00 /usr/local/apache2/bin/httpd -k start root 58479 0.0 0.0 103248 872 pts/0 S+ 20:37 0:00 grep httpd
十一、啓動時出現的 相似於錯誤信息之類的
須要修改配置文件:conf/httpd.conf
配置文件:[root@mysql apache2]# vim conf/httpd.conf
在配置文件中把ServerName www.example.com:80前面的#號去掉
在從新啓動,就不會在有提示了
十二、測試
在Linux中測試是否工做了
[root@mysql apache2]# curl localhost
<html><body><h1>It works!</h1></body></html>[root@mysql apache2]#
在瀏覽器中輸入IP地址來測試,以下圖:
出此It works就表示配置成功了
./bin/apachectl -t:檢測配置文件和 /usr/local/apache2/bin/httpd -t效果同樣
./bin/apachectl start:重啓
[root@mysql apache2]# ./bin/apachectl graceful:在不殺死進程的狀況下調度配置文件
1三、若是須要開機自動啓動Apache服務,須要把這一行命令:
/usr/local/apache2/bin/apachectl start加入到/etc/rc.local文件中才能夠
3、安裝php
一、進入/usr/local/src/目錄下,下載PHP包
下載包
wget http://cn2.php.net/distributions/php-5.3.28.tar.gz
二、解壓包
tar zxvf php-5.3.28.tar.gz
三、進入到php-5.3.28目錄,編譯配置PHP
[root@mysql src]# cd php-5.3.28
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
這一步會出現各類錯誤,根據提示來安裝所須要的庫文件,若是不知道的就使用yum list來搜,
錯誤信息以下:參考文檔:http://sxct168.blog.51cto.com/824373/1640316
一、configure: error: xml2-config not found. Please check your libxml2 installation.
# yum install -y libxml2-devel
二、configure: error: Cannot find OpenSSL's <evp.h>
# yum install -y openssl-devel
三、checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
# yum install -y bzip2-devel
四、configure: error: jpeglib.h not found.
# yum install -y libjpeg-devel
五、configure: error: png.h not found.
# yum install -y libpng libpng-devel
六、configure: error: freetype.h not found.
# yum install -y freetype-devel
七、configure: error: mcrypt.h not found. Please reinstall libmcrypt.
# yum install -y libmcrypt-devel
語法:
yum list |grep -i 報錯的名稱
若是沒有yum源搜索不到,須要安裝yum擴展源
安裝yum擴展源:yum install -y epel-release
四、編譯
make
make install
安裝完成以後,能夠在/bin/ls /usr/local/php下看到一些文件
/usr/local/php/bin/hph
php的可執行文件位置
五、最後複製配置文件/usr/local/php/etc/目錄下,而且更名爲php.ini
[root@mysql php-5.3.28]# cp php.ini-production /usr/local/php/etc/php.ini
/usr/local/php/bin/php -m :查看php都安裝了哪些模塊
/usr/local/php/bin/php -i:查看php的參數
4、配置apache結合php
apache的主配置文件爲:/usr/local/apache2/conf/httpd.conf
一、編輯配置文件
vim /usr/local/apache2/conf/httpd.conf
找到:
AddType application/x-gzip .gz .tgz
在該行下面添加:
AddType application/x-httpd-php .php
而後再找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
將該行改成:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
找到:
#ServerName www.example.com:80
修改成:
ServerName localhost:80
二、檢查配置文件是否正確
[root@mysql php-5.3.28]# /usr/local/apache2/bin/apachectl -t
Syntax OK #出先這個就表示是正確的
三、啓動Apache
/usr/local/apache2/bin/apachectl start
5、測試解析php
一、寫一個php腳本
vim /usr/local/apache2/htdocs/1.php
寫入:
<?php
echo "php解析正常";
?>
保存後,繼續測試:
二、解析報錯
[root@mysql php-5.3.28]# curl localhost/1.php <?php echo "php解析正常"; ?>
/usr/local/apache2/bin//apachectl -M |grep -i php:檢查php模塊是否加載
檢查配置文件的時候,原來是配置文件寫錯了,修改了一下,重啓以後正常
重啓命令:/usr/local/apache2/bin/apachectl graceful
三、解析
curl localhost/1.php
[root@mysql php-5.3.28]# curl localhost/1.php php解析正常 #出現這個就表示解析成功了
四、可是在瀏覽器中解析的時候,中文出現了亂碼,具體如圖:
解決辦法:更改1.php腳本測試文件
保存退出後重啓服務
/usr/local/apache2/bin/apachectl graceful
在測試就正常顯示了
實驗中若是有錯誤的地方,但願各位大神可以指正,若是事後發現文檔中有錯誤的地方,我也會修真。