centos6.4+nginx+mysql+php+phpmyadmin整合過程

weixin_34279184發表於2013-05-15

裝了很多次機,做了很多次重複工作,最後,總結以下裝CentOS經驗:

注:很多問題其實都不是問題,先把selinux關了!setenforce 0 ,不然會死的很慘!

1,先更新源

啟用國內的源:163或sohu

163:http://mirrors.163.com/.help/centos.html

如果想使用新的軟體,建議用REPL和remi的源

#remi的源
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


#Fedora REPL的源
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi

然後 yum update 升級系統

 

下面才是安裝我們需要的軟體,例如 nginx+php+php-fpm+mysql+vsftpd等

 

以下參考這篇文章:參考文章

下面開始配置:

1,設定系統時間

  cp /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

  date #檢視系統時間

  */30 * * * * /usr/sbin/ntpdate time.nist.gov

     crontab -e

  加入這行:*/30 * * * * /usr/sbin/ntpdate time.nist.gov

2,更新系統

  yum update

3,安裝Nginx:

  Niginx 官方的更新源增加: vim /etc/yum.repos.d/nginx.repo

     增加以下內容

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
yum install nginx

  優化Nginx配置:  

#根據CPU核心processes而定
worker_processes 6;
worker_cpu_affinity 000001 000010 000100 001000 010000 100000 ;

#啟用epoll worker_rlimit_nofile 51200; events { worker_connections 51200; use epoll; } #引數調整 sendfile on; tcp_nopush on; tcp_nodelay on; server_tokens off; keepalive_timeout 50; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m; #fastcgi優化 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 256k; #開啟gzip並優化 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on;

  設定開機啟動:

service nginx start
chkconfig nginx on
#安裝php,php-fpm
yum install php php-fpm php-bcmatch php-gd php-mbstring php-mcrypt php-mysql

  配置PHP指令碼的執行:

cp/etc/nginx/conf.d/default.conf etc/nginx/conf.d/default.confbak 
vim  /etc/nginx/conf.d/default.conf

  設定網站的預設目錄:#這裡php-fpm是採用監聽埠的方式,同一臺機的話最好採用unix socket

#去除下面這段內容的註釋
location ~ \.php$ {
    root /home/www;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;
    include  fastcgi_params;
}
#注意其中fastcgi_param行的引數,改為$document_root$fastcgi_script_name,或者使用絕對路徑

4, vsftpd配置

     先配置iptables , vi /etc/sysconfig/iptables ,複製 --dport 22那行,貼上改成21埠。儲存,重啟service iptables restart。 

yum install vsftpd ftp
touch /var/log/vsftpd.log
service vsftpd start
chkconfig vsftpd on
vim /etc/vsftpd/vsftpd.conf
#修改相關引數如下:
#設定不允許匿名訪問
anonymous_enable=NO

#設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為NO的情況下所有虛擬使用者將無法訪問。
local_enable=YES

#使使用者不能離開主目錄,並制定檔案
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

#設定vsftpd的服務日誌儲存路徑。注意,該檔案預設不存在。必須要手動touch出來 ,前面步驟已經建立
xferlog_file=/var/log/vsftpd.log

#允許使用ASCII模式上傳和下載
ascii_upload_enable=YES
ascii_download_enable=YES

#PAM認證檔名。PAM將根據/etc/pam.d/vsftpd進行認證
pam_service_name=vsftpd

#以下這些是關於Vsftpd虛擬使用者支援的重要CentOS FTP服務配置專案。預設vsftpd.conf中不包含這些設定專案,需要自己手動新增RHEL/CentOS FTP服務配置。

#設定啟用虛擬使用者功能。
guest_enable=YES

#指定虛擬使用者的宿主使用者。-RHEL/CentOS中已經有內建的ftp使用者了
guest_username=ftp

#設定虛擬使用者個人vsftp的RHEL/CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS FTP服務檔案(配置檔名=虛擬使用者名稱)  user_config_dir=/etc/vsftpd/vuser_conf


touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list

yum install db4 db4-utils
vim /etc/vsftpd/vuser_passwd.txt
加入相應的使用者資訊,其中奇數行為你新增使用者的賬號,偶數行為密碼,不能有空格
username1
password1
username2
password2

儲存檔案退出,生成使用者認證的db檔案
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
vim /etc/pam.d/vsftpd
用#註釋所有的內容,然後增加以下兩行內容:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

儲存退出。再建立虛擬使用者的ftp服務資料夾,以及前文中所增加的賬號使用者的配置檔案
mkdir /etc/vsftpd/vuser_conf/
vim /etc/vsftpd/vuser_conf/username1

填寫以下內容:
#username1使用者的根目錄(自己決定)
local_root=/home/www/ftp
write_enable=YES
anon_umask=0
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

儲存內容,退出。要建立上述配置檔案中所設定的使用者根目錄,併為其設定許可權

mkdir /home/www/ftp
chmod 777 /home/www/ftp
service vsftpd restart

ok

  #有時候會出現,可以連線ftp,卻不能列出目錄,這個是iptable的埠問題。開啟PASV即可,vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES
pasv_min_port=9000
pasv_max_port=9020

   然後在iptables裡面加上這兩個埠,還是前面說的,yy一行22,再p一下,把22改成9000:9020;

還有可能是selinux的關機,

modprobe ip_nat_ftp 

    service iptables restart && service vsftpd restart

 

5,安裝Mysql5.6(參考這篇文章:http://www.cnblogs.com/trying/p/3573081.html

  安裝完成後記得執行 mysql_security_installation

     遠端連線時,還要將mysql3306埠加入iptables,同樣使用前面的方法,複製一句22的,改成3306,重啟iptables即可。

      配置mysql遠端連線:命令列使用root登入

mysql -uroot -p
use mysql;
update user set host = '%' where user = 'root';

  

 

 


另外可能的工作: 

  • 安裝phpMyAdmin
  1. google phpMyAdmin找到在sourceforge的地址,然後在網站根目錄下wget下來。
  2. 解壓,重新命名目錄,進入目錄,cp config.sample.inc.php config.inc.php 
  3. 重啟nginx
  4. 注意這裡還得再改一下,瀏覽器進入phpmyadmin地址,可能會出現下面的錯誤:
    Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.
    需要將/var/lib/php/session的所有者改為nginx  
    chown -R nginx:nginx /var/lib/php/session

 現在應該可以訪問了...

  • 配置mysql遠端連線

    因為管理需要,我們需要遠端連線一下mysql,以進行管理。安裝好phpmyadmin後,在使用者那裡可以選擇新建一個使用者,將主機設定為需要連線的主機ip或任意主機即可

 

 

 

  • 自動掛載硬碟:

    由於外接了一個硬碟,所以得配置開機自動掛載。vim /etc/fstab加入:

    /dev/sdc /mnt/data auto defaults 0 0

  • centos網路配置:

    IP設定 : /etc/sysconfig/network-scripts/ifcfg-eth0

    閘道器設定: /etc/sysconfig/network

    DNS設定: /etc/resolv.conf

    重啟網路:service network restart 


  •  關閉SELiinux

    在後面的工作中,發現很多地方不方便,例如ftp無法上傳等問題,ssh遠端無法連線等,於是關閉SELinux,執行以下命令:

    #/usr/sbin/setenforce 0
    #echo "usr/sbin/setenforce 0" >> /etc/rc.local

    這樣就可以把關閉SELinux加入開機啟動。


 

相關文章