Linux LAMP架構搭建

一.部署LAMP基本架構php

1.L(linux)A(apache)M(mysql)P(php)html

2.穩定版本(mysql5.1,php5.3,apache2.2)mysql

3.安裝順序,mysql-->apache-->phplinux

4.將所需的壓縮包放指定目錄。sql

(1)編譯原理:主要爲了讓C語言開發的包編譯成二進制文件。數據庫

(2)系統是區分64位與32位 ,對應的安裝包apache

(3)查看linux系統位,uname –a。i686是32 x86是64。vim

 

5.安裝mysql架構

(1)解壓mysql壓縮包app

  tar zxvf mysql.tar.gz                             

 

(2)將mysql目錄移動/usr/下。

  mv mysql目錄 /usr/local/mysql             

 

(3)在mysql目錄下,建立目錄,做爲datadir(數據目錄)

  mkdir /data/mysql                                 

 

(4)建立mysql用戶,不容許登錄,不建立家目錄。

  useradd -s /sbin/nologin -M mysql         

 

(5)將/data/mysql/目錄所屬組所屬主給mysql用戶。

  chown -R mysql:mysql /data/mysql/         

 

(6)將配置文件存放到/etc/my.conf覆蓋。

  cp /mysql目錄/support-files/my-large.cnf /etc/my.cnf

    

(7)修改配置文件

  vim進入/etc/my.conf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld] port = 3306
socket          = /usr/local/mysql/mysql.sock
datadir      = /data/mysql
pid-file = /data/mysql/mysql.pid
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
------------------------------------------
經常使用參數:

Port                               #監聽端口

Socket                             #通訊方式

Key_buffer_size                   #mysql內存使用大小

Log-bin=mysql-bin               #記錄二進制日誌,註釋掉。

Binlog_format=mixed            #日誌相關參數,註釋掉。

Server_id=1                 #主從複製參數,註釋掉。

 

(8)將服務的啓動腳本放入/etc/init.d/下。

  cp /mysql目錄/support-files/mysql.server /etc/init.d/mysqld

  

(9)修改啓動文件。

  vi /etc/init.d/mysqld                       

# The following variables are only set for letting mysql.server find things.

# Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
then
 basedir=/usr/local/mysql    
  bindir=/usr/local/mysql/bin
mysqld_pid_file_path=/data/mysql/master.pid
------------------------------------------

basedir     #定義程序所在路徑

bindir     #定義數據庫啓動路徑

 

(10)在mysql目錄下初始化mysql服務,看到兩個ok就沒問題。

  mysql]#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

報錯1:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
    解決:yum install –y libai*

報錯2:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
    解決:yum install –y numactl-*
(10)報錯

 

(11)查看是否生成mysql,test。

  mysql]#ls /data/mysql                 

 

(12)啓動mysql。

  mysql]#/etc/init.d/mysqld start    

報錯1:Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).
    解決:[root@localhost ~]# cd /usr/local/mysql 
             [root@localhost mysql]# chown -R mysql.mysql . 
             [mysql@localhost mysql]#scripts/mysql_install_db


                        
(12)報錯

 

(13)查看mysql進程。

  ps aux|grep mysql

 

(14)開啓mysql命令終端Mysql>。

  /usr/local/mysql/bin/mysql   

報錯1:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    解決:ln -s  /usr/local/mysql/mysql.sock           /tmp/mysql.sock
(15)報錯

 

6.apache安裝

(1)解壓。

  tar zxf httpd-2.2.16.tar.gz   

 

(2)進入解壓後目錄。

  cd httpd-2.2.16                   

 

(3)安裝gcc

  yum -y gcc                       

 

(4)編譯安裝。

  ./configure --prefix=/usr/local/apache2 --with-included-apr --with-pcre --enable-mods-shared=most

--whit-included-apr 
注:可進行平臺移植,動態運行庫
--enable-mods-shared=most 注:enable靜態模塊,與apache一通執行,佔用內存cpu,速度快 注:shared動態模塊,可調用執行
注:enable-mods-shared=all 安裝全部動態模塊,不用能夠手動禁掉
報錯1:在http2.4編譯安裝時會出現報錯
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
解決:在Apache官網下載 兩個ARP插件覆蓋到http文件內
# cd /usr/local/src<br data-filtered="filtered"># wget http://apache.fayea.com/apr/apr-1.5.2.tar.bz2
# wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.bz2
# tar -jxvf apr-util-1.5.4.tar.bz2
# tar -jxvf apr-1.5.2.tar.bz2
# cp -rf apr-1.5.2 /usr/local/src/httpd-2.4.18/srclib/apr 
# cp -rf apr-util-1.54 /usr/local/src/httpd-2.4.18/srclib/apr

報錯2:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
    解決:yum -y install pcre-devel
(4)報錯

 

(5)編譯。測試echo $?

  make          

報錯1: xml/apr_xml.c:442: 錯誤:‘apr_xml_parser’沒有名爲‘xp’的成員
    解決:yum inatsll expat-devel -y
(5)報錯

 

(6)編譯安裝

  make install                                

 

 

7.php安裝(最後安裝)

(1)解壓

  tar zxf php-5.3.28.tar.gz      

 

(2)進入解壓目錄

  cd php-5.3.28                     

 

(3)編譯安裝,依賴模塊。

  ./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-ip6    

yum -y install  libxml2-devel*
yum -y install  bzip2-devel*
yum -y install  curl curl-devel
yum -y install  libjpeg-devel
yum -y install  openssl-devel*
yum -y install  freetype-devel*
yum -y install libpng-devel yum -y install libmcrypt-devel* #沒有安裝包須要下載源碼包
#安裝編譯包
注:若是報錯可同過 yum list | grep 報錯名 :來查找須要安裝的包

  make      #編譯

  make install   #編譯安裝

 

 

7.配置LAMP架構文件

(1)apche主配置文件。

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

 

(2).so模塊。

  /usr/local/apache2/modules/                   

  注:libphp5.so作支持的與/usr/local/php/bin/php相同。

 

(3)查看模塊命令。

  ldd /usr/local/apache2/modules/libphp5.so    

 

(4)查看php編譯參數目錄。

  /usr/local/php/bin/php -i |les s                     

   cat /usr/local/apache2/build/config.nice              #查看apche編譯參數目錄。

   cat /usr/local/mysql/bin/mysqlbug|grep configure #查看mysql編譯參數目錄

   ①php-5.4.28]#cp php.ini-developmen /usr/local/php/etc/php.ini              #開發環境使用。

   ②php-5.4.28]#cp php.ini-production  /usr/local/php/etc/php.ini               #生產環境使用。

     注:/usr/local/php/bin/php –i |less                #驗證加載配置文件。

     

 

(6)查看php加載的模塊。

  /usr/local/php/bin/php -m                     

   /usr/local/apache2/bin/apachectl -M             #查看apache加載模塊。

  注:(shared)動態。(static)靜態。

 

(7)查看狀態。

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

  注:apr sockaddr_info_get()          #表示SELINUX沒有關閉。

         Syntax OK                  #沒有問題。

 

(8)啓動apahce配置文件。

  usr/local/apache2/bin/apachectl start       

報錯1:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
    解決:[root@server conf]# vi httpd.conf
    #ServerName www.example.com:80
       ServerName localhost:80
  
(8)報錯

 

(9)查看啓動進程。

  ps aux | grep httpd          

 

8.測試httpd解析php。

(1)編輯解析php。

  vim /usr/local/apache2/htdocs/1.php    

  

  注:頁面訪問。

 

(2)訪問失敗,排錯。

  Vim /usr/local/apache2/conf/httpd.conf        #排查配置文件。

  

  注:查看php模塊加載。

  

  注:添加AddType。

 

(3)測試配置文件。

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

 

(4)重啓配置文件。

  /usr/local/apache2/bin/apachectl restart 

 

9.測試啓動

 

 

 

二.在LAMP基礎上架設論壇網站,虛擬主機。

1.關閉SELINUX

(1)編輯配置文件注:長期關閉。

  vim /etc/selinux/config         

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

(2)臨時關閉

  getenforce 0                       

 

2.查找php沒法解析緣由。

(1)查看apache是否調用php模塊。

  /usr/local/apache2/bin/apachectl -M

 php5_module (shared)

 

(2)若是沒有模塊,須要查找是否有編譯過php模塊。

  

 

(3)若是有須要看一下apache主配置文件下是否調用php模塊。

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

 LoadModule php5_module        modules/libphp5.so
注:這個php模塊是在編譯的時候經過apxs模塊自動寫入的。

 

(4)查看apache主配置文件下,php支持模塊是否寫入。

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

  AddType application/x-httpd-php .php

 

(5)apache主配置文件下添加index.php主頁類型。

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

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

 

3.編輯虛擬主機

(1)解開註釋,虛擬主機配置文件。

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

Include conf/extra/httpd-vhosts.conf

 

(2)編輯解註釋一行的配置文件。

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

# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<Directory "/usr/local/apache">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache"
    ServerName 123.com
    CustomLog "logs/123.com-access_log" common
</VirtualHost>
-------------------------------------------
經常使用參數

<VirtualHost *:80>

 Serveradmin                            #管理員郵箱

 documentRoot                           #目錄URL

 ServerName                             #域名訪問

ServerAlias                             #域名別名(可寫多行)

Errorlog                                #錯誤日誌

Customlog                               #訪問日誌common格式

</VirtualHost>

----------------------------------------------

虛擬主機參數,適用Apache2.4日後版本

<Directory "C:/xxx/xxx">  
    Options Indexes FollowSymLinks  
    AllowOverride all  
    Require all granted  
</Directory>  
  
<VirtualHost *:80>  
    DocumentRoot "C:/xxx/xxx"  
    ServerName www.xxx.com  
</VirtualHost> 

注:虛擬主機,能夠給予多IP多端口多域名的配置。

(3)apache主配置文件下的相對路徑參數。

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

ServerRoot "/usr/local/apache2"

 

(4)測試配置文件。

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

 

(5)重啓主配置文件。

  /usr/local/apache2/bin/apachectl restart

  

4.安裝論壇網站

(1)解壓論壇文件包。

  unzip Discuz_X3.2_SC_GBK.zip

 

(2)將網站程序移動到網站目錄下。

  mv uplocad/* ./

 

(3)刪除多餘文件。

  rm -rf upload/ utility/ readme/

 

(4)權限修改。

  ps aux | grep httpd

  注:http執行用戶位daemon用戶,而網站文件是root用戶,則沒有權限執行

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

  注:修改網站文件目錄的執行用戶,-R遞歸目錄下的子目錄。

  注:域名訪問IP首選是 虛擬主機

  打開 windos系統下hosts文件
  

 

(5)打開網站安裝。

(6)安裝,下一步à。

(7)配置mysql,數據庫網站安裝。

  /etc/init.d/mysqld start

   注:啓動mysql。

 

(8)添加開機自啓動。

  chkconfig --list | grep mysql         #查看是否存在mysql服務。

  chkconfig --add mysqld      #添加mysqld服務

  chkconfig mysqld on      #打開開機自啓動

  /usr/local/mysql/bin/mysql

  注:測試啓動mysql

 

(9)添加環境變量賦值。可以使用mysql命令直接啓動。在當前終端生效。

    PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:

   /usr/bin:/root/bin:/usr/local/mysql/bin

 

(10)設置全部終端均可訪問。

  vim /etc/profile

#文件最下面輸入
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

  source /etc/profile  #即時生效

 

(11)設置mysql管理員密碼。

  mysqladmin -uroot password ’123456‘

  mysql -u root –p  #登錄 

  注:再次登錄應輸入管理員,與密碼。

 

(12)mysql下添加普通用戶賦予管理權限,對應主機,與密碼。

  mysql> grant all on *.* to 'user1'@'localhost' identified by 'discuz';

 

(13)繼續安裝論壇

注:添加數據庫選項。

 

注:安裝數據庫。

 

注:完成論壇安裝。

相關文章
相關標籤/搜索