在Ubuntu下安裝Apache、PHP、MySQL

來源:互聯網
上載者:User

1、sudo apt-get install apache2 libapache2-mod-php5 php5 php5-gd mysql-server php5-mysql phpmyadmin
在下載來自動安裝配置的時候會出現一個框子讓你輸入密碼哦!!記住是密碼

2、啟用 mod_rewrite 模組

sudo a2enmod rewrite
3、配置 網站的目錄了

sudo gedit /etc/apache2/sites-available/default

------------------預設情況下你會看到
NameVirtualHost *
<VirtualHost *>
    ServerAdmin webmaster@localhost
   
    DocumentRoot /var/www/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>

------------------我們把它改到別處去~~也就是自訂位置
NameVirtualHost *
<VirtualHost *>
    ServerAdmin webmaster@localhost
   
    DocumentRoot /home/felix/www/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/felix/www/>
------------------看到了把?這個就是放在了home下你的使用者名稱的www檔案夾裡面

4、重啟伺服器

          sudo /etc/init.d/apache2 restart

=======================================================================

以下文章為轉載:

安裝MySQL

sudo apt-get install mysql-server

這個應該很簡單了,而且我覺得大家在安裝方面也沒什麼太大問題,所以也就不多說了,下面我們來講講配置。

配置MySQL

注意,在Ubuntu下MySQL預設是只允許本地訪問的,如果你要其他機器也能夠訪問的話,那麼需要改變/etc/mysql/my.cnf設定檔了!下面我們一步步地來:

預設的MySQL安裝之後根使用者是沒有密碼的,所以首先用根使用者進入:

$mysql -u root

在這裡之所以用-u root是因為我現在是 一般使用者(firehare),如果不加-u root的話,mysql會以為是firehare在登入。注意,我在這裡沒有進入根使用者模式,因為沒必要。一般來說,對mysql中的資料庫進行操作,根本沒必要進入根使用者模式,只有在設定時才有這種可能。

進入mysql之後,最要緊的就是要設定Mysql中的root使用者密碼了,否則,Mysql服務無安全可言了。

mysql&gt; GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";

注意,我這兒用的是123456做為root使用者的密碼,但是該密碼是不安全的,請大家最好使用大小寫字母與數字混合的密碼,且不少於8位。

這樣的話,就設定好了MySQL中的root使用者密碼了,然後就用root使用者建立你所需要的資料庫。我這裡就以xoops為例:

mysql&gt;CREATE DATABASE xoops;

mysql&gt;GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost IDENTIFIED BY "654321";

這樣就建立了一個xoops_roots的使用者,它對資料庫xoops有著全部許可權。以後就用xoops_root來對xoops資料庫進行管理,而無需要再用root使用者了,而該使用者的許可權也只被限定在xoops資料庫中。

如果你想進行遠端存取或控制,那麼你要做兩件事:

其一:

mysql&gt;GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "654321";

允許xoops_root使用者可以從任意機器上登入MySQL。

其二:

$sudo gedit /etc/mysql/my.cnf

老的版本中

&gt;skip-networking =&gt; # skip-networking

新的版本中

&gt;bind-address=127.0.0.1 =&gt; bind-address= 你機器的IP

這樣就可以允許其他機器訪問MySQL了。

1、安裝Apache2

命令:

sudo apt-get install apache2

2、編輯/etc/apache2/apache2.conf檔案,在改動之前,請先將該設定檔做個備份。以便在出錯的時候可以恢複。
&gt;AddDefaultCharset ISO-8859-1 =&gt;AddDefaultCharset GB2312
這樣的話,我們就不會每次開啟網頁都是亂碼了!
3、增加安全模組,以保障Apache服務的正常運行,現在我們安裝mod-security。
a)首先安裝libapache2-mod-security包

命令:

sudo apt-get install libapache2-mod-security

b)該模組預設是沒啟用的,我們可以在/etc/apache2/mods-available目錄下看到有mod-security.load檔案,但在/etc/apache2/mods-enabled目錄卻沒有它的軟連結。我們現在啟用它:
$sudo ln -s /etc/apache2/mods-available/mod-security.load /etc/apache2/mods-enabled/mod-security.load
$sudo cp /usr/share/doc/libapache2-mod-security/examples/httpd2.conf.example-full /etc/apache2/mods-available/mod-security.conf
$sudo cp /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-available/mod-security.conf.orig
$sudo vi /etc/apache2/mods-available/mod-security.conf
&gt;# 檢測內容長度以避免堆溢出攻擊
&gt;SecFilterForceByteRange 32 254 =&gt;SecFilterForceByteRange 32 126

&gt;# debug設定
&gt;SecFilterDebugLevel 9 =&gt;SecFilterDebugLevel 0

&gt;# 設定預設的動作
&gt;SecFilterDefaultAction "deny,log,status:499" =&gt;SecFilterDefaultAction "deny,log,status:404"

&gt;# 把設定傳遞給子目錄
&gt;SecFilterInheritance Off

&gt;# Redirect user on filter match
&gt;# 當匹配sh的時候,重新定向到一個特殊的警告頁面,該頁面是自行編寫的,寫些警告的話讓攻擊者知難而退,該段先不要生效,等到相關配置配好之後再失效不遲。記住在配好之後要使之生效。
&gt;#SecFilter sh redirect:http://localhost/hack/warning.htm

&gt;# Prevent OS specific keywords
&gt;#過濾一些敏感的東西,我們使用*是為了攻擊者使用/etc/./passwd來繞開檢測
&gt;SecFilter /etc/passwd =&gt;SecFilter /etc/*passwd
&gt;SecFilter /bin/*sh

&gt;# Very crude filters to prevent SQL injection attacks
&gt;# 防止SQL插入(SQL Injection)攻擊
&gt;SecFilter "delete[[:space:]]+from"
&gt;SecFilter "insert[[:space:]]+into"
&gt;SecFilter "select.+from"
&gt;SecFilter "select[[:space:]]+from"
&gt;SecFilter "union[[:space:]]+from"

命令:

sudo ln -s /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-enabled/mod-security.conf

c)重啟Apache2服務即可。

命令:

sudo /etc/init.d/apache2 restart

第三步可能會引起部分網站不能正常運行,可以參照著去掉某些限制,由於是安全模組,所以參照的是防火牆的做法,關掉一切不安全的,再根據需要開啟必要的。

安裝PHP支援

$sudo apt-get install libapache2-mod-php5
$sudo apt-get install php5
如果想支援圖形就加php5-gd,如果想支援Mysql就加php5-mysql,這裡之所以要單獨列出libapache2-mod-php5,主要是由於php5的依賴關係沒有做好,有可能會安裝上libapache-mod-php5的包,所以為了避免不必要的麻煩,乾脆還是單獨指定比較好。

3、修改PHP設定檔,以限制記憶體和檔案最大上傳尺寸

我們編輯/etc/php5/apache2/php.ini檔案,先做一般配置,在改動之前,請先將該設定檔做個備份。以便在出錯的時候可以恢複。
&gt;memory_limit = 8M =&gt;修改成你所需的記憶體大小
&gt;upload_max_filesize = 2M =&gt;修改檔案最大上傳尺寸
=============
&gt;extension=mysql.so 支援Mysql服務
&gt;extension=gd.so 支援gd函數
=============
其實在Ubuntu下,如果你安裝了php5-mysql和php5-gd之後,會自動修改以上二行的,我們做的只不過是確認一下它們前面的注釋符是否去掉。

bobyang 寫道:

補充:
1。目前大多數php的open source都是用php4寫的,為了相容以前的php版本,有時需要將register_long_arrays開啟,否則$HTTP_GET_VARS和$HTTP_POST_VARS等變數將無法使用,會出現一些莫名其妙的問題。
2。另外,在裝完php5後最好確認一下/etc/apache2/mods-enabled/下是否有連結:
php5.load -&gt; /etc/apache2/mods-available/php5.load

4、加固PHP,以增強安全性。注意,下面的安全性要因情況而定,所以我已經把它們的功能寫清楚了,如果有問題的話,看看是否由於下面哪種限制條件所造成,可相應將其注釋掉。

下面我們開始加固php,我們再次編輯/etc/php5/apache2/php.ini檔案,之所以沒有一次改完,主要是為了給大家一個清晰的思路。
&gt;#開啟安全模式,開啟他的好處就是PHP檔案只能訪問所有者和PHP檔案所有著一樣的檔案,即使在chroot環境下也無法訪問jail中屬主不一樣的檔案,類似於php shell這樣的後門就沒用武之地了哦,phpshell是很流行的php後門,他可以執行系統命令,就象他的名字一樣,和 shell很接近。
&gt;safe_mode = On

&gt;#下面的設定就限制了fopen(), file()等函數可以操作的目錄範圍,避免了入侵者非法讀取檔案,一定要在/var/www後面加 "/",否則/var/wwww下的檔案也能被訪問 。該選項會禁止任何不在/var/www/目錄下的PHP檔案運行,包括任何以軟連結方式鏈到 /var/www/目錄下的程式,如PhpMyAdmin包,就在該選項設定後無法正常運行。
&gt;open_basedir = /var/www/

&gt;#禁止使用phpinfo和get_cfg_var函數,這樣可以避免泄露服務資訊,一般在在確認PHP能正常工作之後再使之關閉
&gt;disable_functions = phpinfo,get_cfg_var

&gt;#設定php程式錯誤記錄檔
&gt;error_reporting = E_ALL
&gt;log_errors = On
&gt;error_log = /var/log/php_err.log

&gt;#如果php程式沒有指明需要register_globals的話,最好把register_globals設定為Off,這樣可以避免很多安全問題的。注意,如果你的程式是需要register_globals的話,可千萬別關。Ubuntu預設是關閉的。
&gt;register_globals = Off

&gt;#禁止開啟遠程地址,記得最近出的php include的那個漏洞嗎?就是在一個php程式中include了變數,那麼入侵者就可以利用這個控制伺服器在本地執行遠端一個php程式,例如phpshell,所以我們關閉這個。
&gt;allow_url_fopen = Off

5、OK,打完收功!

 

_______________________________________________________________________________________________________

一、安裝apache2+php5+mysql
sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server

二、設定mysql密碼
mysqladmin -u root password 新密碼

三、安裝phpmyadmin
sudo apt-get install phpmyadmin

測試:http://localhost/phpmyadmin/

四、其它操作:
編輯測試頁:()
sudo gedit /var/www/testphp.php

啟動Apache
$ sudo /usr/sbin/apache2ctl start
停止Apache
$ sudo /usr/sbin/apache2ctl stop
重啟Apache
$ sudo /etc/init.d/apache2 restart

如果只是用於本地開發,加強安全性,設定如下:
$ gksudo "gedit /etc/apache2/ports.conf"
$ password:
更改ports.conf
Listen 127.0.0.1:80
儲存檔案之後,並重啟apache。這時,只有通過127.0.0.1才能訪問Apache。

我想說的:我還是喜歡把包包下載下來自己配置環境,難是難了點,而且費時間,但網上資料很多,不會有解決不了的問題的。Ubuntu這點做得有些傻瓜,我不喜歡。apache2昨天自己下了個tar.gz的包,自己裝上,配置完測試成功,今天在新立得軟體包管理器裡安裝上面那些東西(偷懶一下),嗚嗚,自己裝的apache2就不能用了,還要去改,哎,懶得改了都。我對電腦有潔癖,用不到的東西就想刪掉捏。哎,去刪嘍。

 

 

 

 

 

 

因為工作需要,想看看WordPress中Html編輯器是如何?的,以及它在伺服器端是如何進行安全操作的,如過濾html中的javascript關鍵字等,所以手把手地在我虛擬機器中的Ubuntu7.04上過了把安裝癮。
首先,我使用新利德軟體管理工具,安裝了Apache2.2.3、MySQL5.0.38、libapache2-mod-php5及php5-cgi(兩者應該裝前者就夠了),置於這兩個的安裝就不用我說了吧,哈哈,按照新利德軟體管理工具安裝軟體的正常步驟就行了。

裝完後,需要給MySQL資料庫的 root 使用者佈建密碼(預設是空)

mysqladmin -u root password [newpassword]

然後使用 root 使用者登陸進去,建立一個新的資料庫,並新增加一個使用者擁有這個資料庫操作的所有權,所以指令如下:

mysql -u root -p [yourpassword]
>create database wordpressdb;
>grant all privileges on wordpressdb.* to [newusername] identified by “321456″ with grant options;
>exit;

至此,資料庫已經準備好了,接下來就是下載 WordPress2.2 (最新版)了,然後將其解壓到Apache的Web目錄(Apache預設安裝後,會在/var/目錄下建立一個www/目錄,將WordPress整個目錄複寫到www目錄下就可以了,這裡需要管理員權限),然後在瀏覽器中敲入 http://localhost/wordpress ,頁面提示沒有找到 wp-config.php 檔案,跟到裡面一看,原來他只有一個 wp-config-simple.php 的模板,另外,還有一個readme.html的檔案,你可以先看看這個檔案,然後就知道怎麼回事了,於是我將 wp-config-simple.php 相應的地方(其實一般只要改三個地方,資料庫名、訪問資料庫的使用者名稱及該使用者名稱的密碼),另存新檔 wp-config.php 檔案。

重新整理前面的頁面,這個時候提示了一個這樣的問題:Your PHP installation appears to be missing the MySQL which is required for WordPress.,開始我以為是WordPress找不著資料了,一個勁地修改資料庫,訪問資料庫,看是否是我的資料回名或是使用者名稱寫錯了,不過好像都不是,後來問同事,原來是 PHP 少了一個與 MySQL 進行通訊的模板,哎,沒辦法,英文太次了!

於是只好又Google了一下,終於在一個外文網站上找到了這個模板的名稱:libapache2-mod-auth-mysql php5-mysql

於是開啟終端,敲入如何命令列(下面的命令列中順帶安裝了phpmyadmin用於管理mysql,其它我更喜歡mysql query browser來操作MySQL資料庫):

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

等待安裝完後,繼續如下操作:
sudo gedit /etc/php5/apache2/php.ini

找到這一行“;extension=mysql.so”,將前面的分號去掉,表示Apache啟動的時候,載入與MYSQL串連的模組,然後儲存。

最後就是重啟Apache伺服器:
sudo /etc/init.d/apache2 restart

Linux學習網收集整理 ,轉貼請標明原始連結。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.