動機:由於要在服務器上安裝一個開源的PHP寫的應用,因此纔有了下面的工做。 php
服務器系統:Ubuntu12.04 Server版(最恨那種不說明系統版本就開始說裝什麼裝什麼的,Linux好多發行版,再加上Windows,Mac,均可以配置,用的命令,默認的目錄,軟件的名字都不同,怎麼搞?還一搜就找到一大堆,還包括各類轉載,還有那種沒素質的網站用爬蟲把全部網站的數據都爬過來賺流量的,排版還不行,代碼都看不清楚,百度空間那貼的代碼能看? 若是我這篇日誌如今出現的這個網站不叫開源中國,那麼這個網站就是我吐槽的那一種。Web2.0時代建議你們寫東西都負責點,這樣你們的效率都能提升。這麼多都不知道試哪一個,最可怕的是都試過來一遍尚未解決問題,真是蛋疼。我若是看見我這篇日誌裏寫了這麼多沒用的東西我會很煩,還請海涵) mysql
一、安裝Apache2 程序員
sudo apt-get install apache2 sql
安裝完之後訪問發現端口被佔用,是由於我有一個另外的應用把80端口給佔用了(默認是80,若是不想修改就不用下面的操做了),因此須要修改apache2的端口,我這裏將端口從80修改成8001,修改的文件及具體位置以下: shell
文件:/etc/apache2/ports.conf 數據庫
NameVirtualHost *:80 Listen 80 改成 NameVirtualHost *:8001 Listen 8001
文件:/etc/apache2/sites-available/default apache
<VirtualHost *:80> 改成 <VirtualHost *:8001>
而後重啓apache2,再訪問http://localhost:8001就會出現It Works的頁面了。 瀏覽器
apache2默認的訪問根目錄爲:/var/www 服務器
而後我將應用程序放到這個目錄下面,訪問,發現進不去,只是下載了一個不知道是什麼東西的文件。糾結了大約半個小時,發現php沒裝,真是2。 wordpress
二、Php5的安裝
sudo apt-get install php5
安裝完php5之後,繼續嘗試,能訪問了,而後就去配置應用程序的數據庫(這個過程跟wordpress的安裝相似),發現點擊確認後沒反應,也沒有錯誤顯示在瀏覽器上。沒辦法,查了下程序的源碼,發現錯誤日誌控制的仍是挺好的,因而去找php的日誌。找了一圈也沒找到php默認的錯誤日誌輸出,因此就直接配置了錯誤日誌輸出的位置,須要修改php的配置文件php.ini。因爲是直接apt-get install的,因此php.ini也不太好找,無奈用find -name搜了一下,找到多個位置,發現修改
/etc/php5/apache2/php.ini
這個文件最靠譜,還有另一個php.ini,但因爲我使用的是apache2,因此就認爲改這個的成功機率更高,結果經驗證,配置文件就是這個。
修改下面這一行(注意去掉註釋):
error_log=/var/www/php_errors.log
爲了方便查看,我直接把錯誤日誌放到apache2訪問根目錄了。
而後看日誌,發現報了一個fatal error,是mysql的鏈接函數未定義,那就確定是須要配置或者安裝什麼鏈接mysql的東西了,網上找了一下,不少很亂而且很不靠譜,並且不少是Windows下的配置,難道如今的程序員都在Windows下面寫代碼嗎?最後好不容易找到一種靠譜的方法解決了個人問題:
php、apache與mysql的鏈接: sudo apt-get install php5-mysql php5-gd sudo apt-get install libapache2-mod-php5 libapache2-mod-auth-mysql
裝完這四個東西,重啓一下apache就ok了
service apache restart
爲了解決這個問題,我還裝了一個phpmyadmin(我原本覺得裝上這玩意就能解決個人數據庫鏈接問題了,是我想多了,網上的東西太坑)
三、sendmail設置
mysql鏈接成功之後,而後順利安裝完個人應用程序,而後試了一下郵件發送,結果不行。發現這個應用裏面的mail函數用的是php的mail,因此就從php配置這下手,找到php.ini裏的smtp配置,發現是only for Win32,果斷放棄,而後就開始去網上搜,各類沒用的信息。發現有人去下SendMail包,因而狠下心來:
sudo apt-get install sendmail
軟件源裏果真有這個東西,裝完之後再試,大功告成。
四、mysql的安裝與root密碼設置
因爲我原來裝過mysql,因此就沒說。想一想仍是寫上吧。
直接apt-get install mysql-server mysql-client就能裝上了
啓動:service mysqld start
設置root密碼:
#mysql
#mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('secret_password');