LAMP的搭建說簡單也簡單,說難也不容易,若是採用一鍵安裝也是比較容易的,但想配置本身須要的版本等等也是比較麻煩。前段時間我分別在本身的電腦和阿里雲上部署了Lamp環境,如下是步驟和常出現的問題的解決方法,都是編譯安裝,但願對初學者有用。php
安裝目錄,我把他們指定在 /usr/local/ 下面 ,包括apache2,php,mysql文件html
須要的文件http://yunpan.cn/c3KzgIjkumcwy (提取碼:a1b8)node
先安裝apachemysql
安裝步驟:linux
1 tar -zxvf httpd-2.4.12.tar.gz 2 cd httpd-2.4.12
3 ./configure --prefix=/usr/local/apache2 --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre 4 make 5 make install
若是順利,能夠成功把apache安裝在--prefix=指定的目錄,可是可能出現編譯錯誤,能夠對照下面的方法解決sql
常出錯誤apache
1、在進行第三步的時候回出現缺乏環境的錯誤,能夠按照一下步驟解決瀏覽器
若是出現:app
1 checking for APR... no
2 configure: error: APR not found . Please read the documentation
解決辦法:dom
1:下載須要的安裝包(上面的雲盤中已經提供,能夠下載):
1 wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
2 wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
3 wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip
2.編譯安裝(先移除舊的文件):
1 yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs
具體步驟以下:
解決apr not found問題
1 # tar -zxf apr-1.4.5.tar.gz 2 # cd apr-1.4.5
3 # ./configure --prefix=/usr/local/apr 4 # make && make install
解決APR-util not found
1 # tar -zxf apr-util-1.3.12.tar.gz 2 # cd apr-util-1.3.12
3 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr 4 # make && make install
解決pcre
1 #unzip -o pcre-8.10.zip 2 #cd pcre-8.10
3 #./configure --prefix=/usr/local/pcre 4 #make && make install
4.最後編譯Apache時加上:
1 --with-apr=/usr/local/apr \ 2 --with-apr-util=/usr/local/apr-util/ \ 3 --with-pcre=/usr/local/pcre
2、若是在編譯的時候出現:configure: error: mod_so can not be built as a shared DSO
解決辦法:刪除編譯選項:--enable-modules=so
3、啓動apache報錯:
linux啓動apache命令報錯(98)Address already in use: make_sock: could not bind to address [::]:80
解決辦法:
1 查看到對應哪一個應用佔用了80端口: 2 netstat -tulnp | grep ':80 ' 3 找到對應的PID殺掉。 4 kill 'PID'
4、出現:httpd: Could not reliably determine the server's fully qualified domain name
解決方案:進入apache的安裝目錄:
Windows : D:\Program Files\Apache Software Foundation\Apache2.2\conf
linux : /usr/local/apache/conf
用記事本打開httpd.conf
將裏面的#ServerName localhost:80註釋去掉便可。
再執行httpd
而後能夠經過瀏覽器訪問http://localhost:80,若是頁面顯示「It works!」,即表示apache已安裝並啓動成功。
經常使用修改:
Apache自動啓動
一、將apachectl文件拷貝到/etc/rc.d/init.d 中,而後在/etc/rc.d/rc5.d/下加入連接便可。
1 cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd 2 ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd
此時Apache就能夠自動啓動。
二、 運行chkconfig --list,發現沒有linux服務列表中httpd,經過chkconfig --add httpd來添加,可是提示:httpd服務不支持 chkconfig。
須要編輯/etc/rc.d/init.d/httpd,在第一行添加如下注釋信息:
1 chkconfig: 345 85 15 2 description: Activates/Deactivates Apache Web Server
第一行3個數字參數意義分別爲:哪些Linux級別須要啓動httpd(3,4,5);啓動序號(85);關閉序號(15)。
保存後執行:chkconfig --add httpd,成功添加。
在rc3.d、rc4.d、rc5.d路徑中會出現S85httpd的連接文件,其餘運行級別路徑中會出現K61httpd的連接文件。
三、運行chkconfig --list httpd 就會出現
能夠經過:service httpd start 啓動
編譯期間可能出現其餘的缺乏環境問題,能夠一步一步查查,都有對應的解決辦法。
安裝mysql(建議先安裝mysql在安裝php,php要指定mysql的安裝路徑)
1:檢查是否已安裝
1 rpm -qa|grep -i mysql
載時使用了--nodeps選項,忽略了依賴關係
1 rpm -e mysql-5.4.61-4.el6.x86_64 --nodeps
2:添加mysql組和mysql用戶,用於設置mysql安裝目錄文件全部者和所屬組。
1 groupadd mysql 2 useradd -r -g mysql mysql
將二進制文件解壓到指定的安裝目錄,咱們這裏指定爲/usr/local
1 cd/usr/local/ 2 tar zxvf /your_path/mysql-5.5.29-linux2.6-x86_64.tar.gz
3:進入mysql文件夾,也就是mysql所在的目錄,並更改所屬的組和用戶。
1 cd mysql 2 3 chown -R mysql . 4 5 chgrp -R mysql .
4:執行mysql_install_db腳本,對mysql中的data目錄進行初始化並建立一些系統表格。注意 mysql服務進程mysqld運行時會訪問data目錄,因此必須由啓動mysqld進程的用戶(就是咱們以前設置的mysql用戶)執行這個腳本,或 者用root執行,可是加上參數--user=mysql。
1 scripts/mysql_install_db --user=mysql
5:將mysql/目錄下除了data/目錄的全部文件,改回root用戶全部,mysql用戶只需做爲mysql/data/目錄下全部文件的全部者。
1 chown -R root . 2 3 chown -R mysql data
6: 複製配置文件
1 cp support-files/my-medium.cnf /etc/my.cnf 2 首先須要將scripts/mysql.server服務腳本複製到/etc/init.d/,並重命名爲mysqld。 3 cp support-files/mysql.server /etc/init.d/mysqld
7:經過chkconfig命令將mysqld服務加入到自啓動服務項中。
1 chkconfig --add mysqld 2 chkconfig --list mysqld
檢查是否啓動:netstat -anp|grep mysqld
啓動:service mysqld start
安裝php
tar -zxvf php-5.0.2.tar.gz cd php-5.0.2 ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --disable-tokenizer --with-curl --with-mcrypt --enable-mbstring --with-iconv --with-gd --with-gettext --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --disable-tokenizer make make install
編譯時已經制定了經常使用的擴展,若是還須要其餘擴展,能夠按照下面的方式來添加
進入源碼安裝包:ext文件
可用擴展都在那
執行步驟:
1 //添加擴展 2 /usr/local/php/bin/phpize 3 ./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=DIR(默認路徑時無需指定) 4 make&&make install 5 會在/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525生成curl.so文件
與apache整合:
1 php與apache整合 2 emacs /usr/local/apache2/conf/httpd.conf 找到DirectoryIndex改成以下: 3 DirectoryIndex index.html index.php index.htm index.html.var 4 找到 5 AddType application/x-compress .Z 6 AddType application/x-gzip .gz .tgz 7 在它後面添加 8 AddType application/x-httpd-php .php 9 /usr/local/apache2/bin/apachectl restart