LAMP架構(gòu)搭建與優(yōu)化

1.1MySQL安裝

創(chuàng)新互聯(lián)自2013年起,先為固始等服務(wù)建站,固始等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為固始企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

LAMP是linux apache mysql php的簡寫

MySQL是一個(gè)數(shù)據(jù)庫文件 apache提供http服務(wù) 很多網(wǎng)站站點(diǎn)使用php寫

安裝下載MySQL

www.aminglinux.com/study_v2/chapter12.html

下載 r.aminglinux.com/

1.2Apache編輯安裝

路徑和方法

www.aminglinux.com/study_v2/chapter12.html

下載 r.aminglinux.com/

/usr/local/apache2/bin/apachectl start (stop關(guān)閉)啟動(dòng)apache

ps aux |grep httpd 查看是否啟動(dòng)了

netstat -lnp 查看監(jiān)聽窗口80

/usr/local/apache2/bin/apachectl -M 查看模塊 static為靜態(tài) shared為動(dòng)態(tài)

- L只列出靜態(tài)模塊

- t 查看配置文件語法有沒有錯(cuò)誤

/usr/local/apache2/bin/apachectl graceful 重新加載配置文件

-L 中的prefock.c 說明apache在prefock模式下進(jìn)行

prefock worker event3種模式

1.4php編譯安裝-安裝順序在最后

路徑也方法

www.aminglinux.com/study_v2/chapter12.html

下載 r.aminglinux.com/

/usr/local/php/bin/php -m 查看模塊 都是靜態(tài)

-i 查看相關(guān)配置

測試php解釋

重啟apache (restart)

vim /usr/local/apache2/conf/httpd.conf 查看配置文件

DocumentRoot就是訪問網(wǎng)站時(shí)放在的目錄

AddType application/x-gzip.gz.tgz下添加一條

AddType application/x-httpd-php.php

修改 DirectoryIndex index.html  index.php

保存退出

restart (或graceful)apache

可以用ip網(wǎng)站方式或者指令curl測試apache是否結(jié)合php搭建LAMP

1.6安裝discuz

Discuz 創(chuàng)建論壇

mkdir /data/www

cd /data/www

wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip

unzip  Discuz_X3.2_SC_GBK.zip

ls

mv upload/* ./ 把upload下的文件都移出來

ls

rm -rf readme/ utility/ upload/Discuz_X3.2_SC_GBK.zip 把多余的幾個(gè)文件刪去

ps aux |grep httpd 查看apache啟動(dòng)否

/usr/local/apache2/bin/apachectl start  開啟

vim /usr/local/apache2/conf/httpd.conf

找到httpd-vhosts.conf,把前面的#刪去,使用了虛擬主機(jī)的配置文件

找到Deny,改為Allow

:wq

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

把第二個(gè)<VirtualHost *:80>整段刪掉

修改第一個(gè)

刪去serveradmin整行

把documentroot 改為“/data/www”

servername 改為www.test.com

serveralias (別名)www.aaa.com

errorlog customlog 錯(cuò)誤日志與訪問日志 在最前面加#

:wq

/usr/local/apache2/bin/apachectl -t

/usr/local/apache2/bin/apachectl restart

hosts 與ip,域名有關(guān)   DNS服務(wù)

vim/etc/hosts

加一行 192.168.73.10(ip)www.baidu.com

:wq

在主機(jī)找到hosts文件

在# ::1 localhost下一行加

192.168.73.10 www.test.com www.aaa.com

保存退出

主機(jī)用瀏覽器登錄 www.test.com

點(diǎn)擊同意

將紅叉改為可寫

把它們的屬組root改為daemon

chown -R daemon config data uc_client/data uc_server/data

刷新瀏覽器

下一步

第一項(xiàng)全新安裝

創(chuàng)建數(shù)據(jù)庫

/usr/local/mysql/bin/mysql

create database discuz; (數(shù)據(jù)庫名)

grant all on discuz.* to  '111'@'localhost' identified by 'vincentlinux';

回到瀏覽器

庫名 discuz

用戶 111

密碼 vincentlinux

管理員密碼123456

下一步

安裝完成

點(diǎn)此訪問

1.7apache用戶認(rèn)證

將abc目錄設(shè)為只有管理員才能訪問

cd /data/www

mkdir abc

cd abc

cp /etc/passwd  ./12.txt

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

在#CustomLog下一行加

<Directory /data/www/abc/>

AllowOverride AuthConfig

AuthName "aaaa"

AuthType Basic

AuthUserFile /data/.htpasswd

require valid-user

</Directory>

:wq

vim /etc/profile.d/path.sh 修改path

export PATH=$PATH:/usr/local/mysql/bin/:/usr/local/apache2/bin

:wq

source /etc/profile.d/path.sh

設(shè)置用戶和密碼

htpasswd -c /data/.htpasswd user1 用戶名user1

密碼

再創(chuàng)一個(gè)user2 刪去-c

重啟apache

apachectl graceful

瀏覽器登錄 www.test.com/abc/12.txt 就會(huì)要求打用戶名和密碼登錄了

1.8默認(rèn)虛擬主機(jī)

mkdir /tmp/123 創(chuàng)建空目錄

chmod 600 /tmp/123

vim /use/local/apache2/conf/extra/http-vhosts.conf

在<VirtualHost *:80>上添一段

<VirtualHost *:80>

DocumentRoot “/tmp/123”

ServerName 1111.com

<VirtualHost *:80>

這樣禁止了默認(rèn)的虛擬主機(jī)

只能用指定域名www.test.com 和www.aaa.com登錄論壇

1.9域名301域名

使www.aaa.com域名自動(dòng)跳轉(zhuǎn)到www.test.com

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

在#CustomLog下一行添加一段

<Ifmodule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.aaa.com$

RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]

</IfModule>

:wq

如果還有另一個(gè)域名www.bbb.com需要跳轉(zhuǎn)到test,則在aaa下一行再添加一條RewriteCond 給bbb,在aaa.com$后幾格加[OR]

2.0 Apache日志切割

訪問日志記錄

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

把ErrorLog和CustomLog前的#去掉 開啟錯(cuò)誤日志和訪問日志的記錄

CustomLog 后面的common指日志的格式和名字

vim /usr/local /apache2/conf/httpd.conf

搜索 /common

找到兩個(gè)LogFormat 就是日志的格式和名稱,最好用combined格式

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

把common改為combined

:wq

apachectl -t

apachectl graceful

外部瀏覽器訪問論壇

cd /usr/local/apache2/logs

ls

生成 access_log和error_log兩個(gè)日志

切割日志

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

修改CustomLog的路徑 “|/usr/local/apache2/bin/rotatelogs -l  /usr/local/apache2/logs/+原來的名稱-access_%Y%m%d_log  86400” combined

年月日命名日志  以86400秒即一天為分割一個(gè)日志

2.1Apache 不記錄指定文件類型的日志

沒必要記錄論壇的小圖片css等插入件

只需要記錄每頁的地址

先給這些小插件標(biāo)記

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

在serverAlias下一行添加

  SetEnvIf Request_URI ".*\.gif$" p_w_picpath-request

   SetEnvIf Request_URI ".*\.jpg$" p_w_picpath-request

   SetEnvIf Request_URI ".*\.png$" p_w_picpath-request

   SetEnvIf Request_URI ".*\.bmp$" p_w_picpath-request

   SetEnvIf Request_URI ".*\.swf$" p_w_picpath-request

   SetEnvIf Request_URI ".*\.js$" p_w_picpath-request

   SetEnvIf Request_URI ".*\.css$" p_w_picpath-request

然后在CustomLog 的最后添加 env=!p_w_picpath-request

除了以上p_w_picpath-request標(biāo)記的都會(huì)記錄

:wq

apachectl -t

apachectl restart

外部瀏覽器刷新

ls

less 生成的訪問日志名稱

查看日志不存在以上那些格式的內(nèi)容

2.2Apache 配置靜態(tài)緩存

將網(wǎng)頁中的小圖片小圖標(biāo)作一個(gè)緩存 減少帶寬

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

在CustomLog的下一段添加

<IfModule mod_expires.c>

    ExpiresActive on

    ExpiresByType p_w_picpath/gif "access plus 1 days"

    ExpiresByType p_w_picpath/jpeg "access plus 24 hours"

    ExpiresByType p_w_picpath/png "access plus 24 hours"

    ExpiresByType test/css "now plus 2 hours"

    ExpiresByType application/x-javascript "now plus 2 hours"

    ExpiresByType application/x-shockwave-flash "now plus 2 hours"

    ExpiresDefault "now plus 0 min"

 </IfModule>

:wq

apachectl -t

apachectl graceful

2.3Apache配置防盜鏈

防止自己網(wǎng)站的東西被人盜用

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

在 </IfModule> 下一行添加

SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref

SetEnvIfNoCase Referer ".*\.aminglinux\.com" local_ref

<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|png|gif|js|css)">

    Order Allow,Deny

    Allow from env=local_ref

  </filesmatch>

域名為www.test.com和www.aminglinux.com在白名單上,標(biāo)記為local_ref

把(txt|doc|mp3|zip|rar|jpg|png|gif|js|css)這些格式的東西加上防盜鏈

只允許有l(wèi)ocal_ref標(biāo)記的地址調(diào)用

:wq

apachectl restart

外部瀏覽器測試

2.4Apache訪問控制

限制相關(guān)ip訪問站點(diǎn)

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

在ErrorLog上方添加一段

<Directory "data/www">(網(wǎng)站根目錄)

        AllowOverride None

        Options None

        Order allow,deny (先allow后deny是黑名單,不允許ip為127.0.0.1訪問)

        Allow from all

        Deny from 127.0.0.1

    </Directory>

    <filesmatch "(.*)admin(.*)">(訪問后臺(tái))

        Order deny,allow (先deny后allow是白名單,允許127.0.0.1訪問))

        Deny from all

        Allow from 127.0.0.1

    </filesmatch>

測試 curl -x127.0.0.1:80 -Iwww.test.com

或者

curl -x127.0.0.1:80 -Iwww.test.com/admin.php

假如  admin.php 被兩個(gè)配置段都匹配了的話,那就選精準(zhǔn)度更高的。

這兩個(gè)就是下面這個(gè)filesmatch 精準(zhǔn)度高,所以以它為準(zhǔn)。所以127.0.0.1能夠訪問www.test.com/admin.php

2.5 Apache禁止解析php

ls -l /data/www/data

查看apache的數(shù)組都是daemon

<Directory /data/www/data>

        php_admin_flag engine off  (關(guān)閉php解析引擎)

        <filesmatch "(.*)php">  (禁止訪問或下載php文件)

                Order deny,allow

                Deny from all

           

        </filesmatch>

</Directory>

2.6Apache禁止指定user_agent

在RewriteRule下一行添加

 RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]    (匹配curl相關(guān)的,NC不區(qū)分大小寫,OR或者)

   RewriteCond %{HTTP_USER_AGENT} ^.*chrome* [NC]   (匹配chrome相關(guān)的,NC不區(qū)分大小寫,啟動(dòng)后瀏覽器訪問不了網(wǎng)站,測試完要在前面加上#去除禁止)

   RewriteRule .* - [F]  (forbidden,禁止以上兩種相關(guān)的求情)

:wq

apachectl restart

2.7Apache通過rewrite限制某個(gè)目錄

在  RewriteRule .* - [F]  下一行添加

RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC] (限制訪問tmp目錄)

RewriteRule .* - [F]

2.8php.ini配置文件詳解

php的配置文件路徑 /usr/local/php/etc/php.ini(用;作注釋符號(hào))

修改

disable functions =disable_functions=eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfs (禁用的高風(fēng)險(xiǎn)函數(shù))

display_errors = off

log_errors = On

error_log = /usr/local/php/logs/php_errors.log (若目錄logs不存在,就新建mkdir /usr/local/php/logs  然后修改權(quán)限 chmod 777 !$)

errors_reporting = E_ALL & ~E_NOTICE

:wq

apachectl graceful

(錯(cuò)誤日志不會(huì)暴露,生成存在logs目錄下)

繼續(xù)修改

php、apache要訪問一個(gè)網(wǎng)站,若網(wǎng)站有漏洞,被別人獲得權(quán)限,要限定死在某個(gè)目錄下

open_basedir =/data/www:/tmp (網(wǎng)站程序所在目錄)

或者在apache下定義(先注釋了open_basedir),php.ini只能配置一個(gè),apache可以配置多個(gè)

vim /usr/local /apache2/conf/extra/httpd-vhosts.conf

在<Directory "/data/www">上一方添加

php_admin_value open_basedir "/data/www/:/tmp/"

:wq

2.9php擴(kuò)展模塊如何安裝

cd /usr/local/src/php-5.4.36

ls

cd ext/ (源碼包都在ext下)

ls

例子 編譯模塊curl

cd curl/

ls

/usr/local/php/bin/phpize

ls (生成了configure文件)

./configure --with-php-config=/usr/local/php/bin/php-config

make

make install

生成了curl.so

/usr/local/php/bin/php/ -i |grep extension_dir

vim /usr/local/php/etc/php.ini

在;extension=php_…最下面添加

extension=curl.so

:wq

3.0mysql配置講解

mysql配置文件

vim /etc/my.cnf

核心配置是mysqld部分

port 端口

socket 監(jiān)聽的socket

skip-locking 是否過濾掉lock,不鎖

key-buffer-size 索引塊緩沖區(qū)

(可以通過mysql調(diào)優(yōu)的帖子參考調(diào)值大小

www.aminglinux.com/bbs/thread-5758-1-1.html)

max-allowed-packet 允許最大的包

table-open-cache…

另外還可能用到的log-bin、server-id、interactive_timeout、wait timeout、long_query_time、log_slow_queries=/data/mysql/slow.log

3.1 mysql的root密碼重置

mysqladmin -uroot password '密碼'  將mysql設(shè)置一個(gè)登錄密碼

命令 quit 退出mysql模式

重置密碼

vim /etc/my.cnf

在mysqld最下面添加

skip-grant

:wq

/etc/init.d/mysqld restart 重啟

mysql 登錄mysql  不需要密碼

use mysql

update user set password=password('新密碼')where user='root; 設(shè)置了新密碼

vim /etc/my.cnf

刪去skip-grant

:wq

/etc/init.d/mysqld restart 重啟

mysql

mysql -uroot -p新密碼  登錄mysql

3.2mysql登錄

遠(yuǎn)程登錄mysql

mysql -uroot -h292.168.11.160 -P3306 -p密碼  3306端口

授權(quán)ip

在mysql模式里

grant all on *.* to 'root' @'192.168.11.160' identified by '密碼';  授權(quán)ip192…登錄

select user(); 查看登錄當(dāng)前用戶

3.3mysql常用操作-1

庫--》表--》行--》字段

show databases; 查看mysql里有哪些庫

庫information_schema、discuz、mysql、test

use 庫名 切換庫

select database();查看當(dāng)前數(shù)據(jù)庫

select version();查看版本

show tables; 查看表

desc 表名; 查看表里面的字段

show create table 表名\G;查看表的創(chuàng)建

create database A;創(chuàng)建庫A

use A

create table B('id' int(4), 'name' char(40)) ENGINE=MyISAM  DEFAULT CHARSET=gbk;

'為反引號(hào),創(chuàng)建表B,字段為 id,格式int,長度4位,字段name,格式char,最長40位,engine為myisam,字符集Default charset為gbk

show tables;

desc B;

在表里插入數(shù)據(jù)

insert into B values(1,'aming');id為1,name改為aming

delete from B where name='aming'; 把name為aming那行刪去

truncate table A.B; 清空表B

drop table B;刪除表B

drop database A ;刪除庫A

3.4mysql常用操作2

授權(quán) grant all on 數(shù)據(jù)庫名……

flush privileges ;刷新權(quán)限

show processlist;查看數(shù)據(jù)庫里的隊(duì)列

查看mysql 的錯(cuò)誤日志

cd /data/mysql

ls

.err文件就是錯(cuò)誤日志

tail .err 查看錯(cuò)誤日志

3.5mysql備份與恢復(fù)

可以遠(yuǎn)程備份也可以本地備份

mysqldump -uroot -p密碼 discuz >/data/discuz.sql  備份數(shù)據(jù)庫discuz

mysql -uroot -p密碼 discuz < /data/discuz.sql恢復(fù)備份

網(wǎng)站標(biāo)題:LAMP架構(gòu)搭建與優(yōu)化
鏈接URL:http://bm7419.com/article24/igeeje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站、用戶體驗(yàn)、企業(yè)網(wǎng)站制作、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化