ຕິດຕັ້ງເວັບເຊີບເວີດ້ວຍ NGINX+APACHE+PHP+MYSQL (CENTOS 6.4)

ຕິດຕັ້ງເວັບເຊີບເວີດ້ວຍ NGINX+APACHE+PHP+MYSQL (CENTOS 6.4)


ໃນປະຈຸບັນລະບົບເວັບເຊີບເວີທີ່ນິຍົມທີ່ສຸດໃນບ້ານເຮົາກໍໜ້າຈະເປັນ Apache ຍ້ອນຕິດຕັ້ງງ່າຍເກືອບຈະບໍ່ໄດ້ປັບແຕ່ງຫຍັງເພີ່ມເລີຍກໍສາມາດນໍາໃຊ້ໄດ້ແລ້ວ ທີ່ສໍາຄັນມີ community ທີ່ກວ້າງຂວາງຫຼາຍ ແຕ່ຈຸດອ່ອນຂອງ Apache ນັ້ນທີ່ເຮົາພົບເຫັນກໍຄືການກິນແຣມເປັນຈໍານວນຫຼາຍ ຖ້າໂຫຼດ static file ໃຫຍ່ໆບໍ່ຕ້ອງເວົ້າເຖິງ ອາດຈະເຖິງຂັ້ນ service ດັບເລີຍກໍໄດ້ ຈຶ່ງໄດ້ມີຄົນຄິດຄົ້ນເລື່ອງຂອງການສ້າງ Reverse Proxy ໂດຍໃຫ້ NGINX ( ເປັນເວັບເຊີບເວີນ້ອງໃໝ່ໄຟແຮງໃນບ້ານເຮົາ ແຕ່ທາງອາເມລິກາຮິດກັນມາຫຼາຍປີແລ້ວ ) ເປັນໜ້າດ່ານຄອຍໂຫຼດພວກ Static file ແທນສ່ວນ Dynamic File ພວກໄຟລ php ຈະສົ່ງໄປໃຫ້ Fast CGI ໂຫຼດແທນເຮັດໃຫ້ປະຢັດ memory ໄປໄດ້ຫຼາຍເຕີບ ແລະ Fast CGI ຖືກຄວບຄຸມດ້ວຍ php-fpm ເຊິ່ງຈະແນະນໍາວິທີຕິດຕັ້ງດັ່ງຕໍ່ໄປນີ້

ຂັ້ນຕອນການຕິດຕັ້ງ

1 > ກະກຽມ packages ໃຫ້ພ້ອມ

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

2 > ຕິດຕັ້ງ MySQL

yum -y install mysql mysql-server

ເປີດ service mysql

service mysqld restart

ປັບແຕ່ງຄ່າເລີ່ມຕົ້ນໃຫ້ mysql

mysql_secure_installation
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
… Success!
Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
… Success!
By default, MySQL comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!

restart service

service mysqld restart

3 > ຕິດຕັ້ງ NGINX + Apache

yum install -y nginx httpd

4 > ຕິດຕັ້ງ PHP

yum install php-pear-Net-Socket php-pear php-common php-gd php-devel php php-mbstring php-pear-Mail php-cli php-pear-Auth-SASL php-ldap php-pear-Net-SMTP php-imap php-snmp php-pdo php-xml php-mysql php-fpm -y

ແກ້ໄຂໄຟລ /etc/php.ini ແລະ ປ່ຽນຄ່າ cgi.fix_pathinfo=1 ໃຫ້ເປັນ cgi.fix_pathinfo=0

ແກ້ໄຂໄຟລ /etc/nginx/conf.d/default.conf

#
# The default server
#
	server {
	listen 80;
	server_name example.com;
	location / {
	root /usr/share/nginx/html;
	index index.php index.html index.htm;
	}

	error_page 404 /404.html;
	location = /404.html {
		root /usr/share/nginx/html;
	}

	error_page 500 502 503 504 /50x.html;
	location = /50x.html {
		root /usr/share/nginx/html;
	}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
	location ~ \.php$ {
	root /usr/share/nginx/html;
	fastcgi_pass 127.0.0.1:8080;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
	}
}

ແກ້ໄຂໄຟລ /etc/nginx/conf.d/virtual.conf

	server {
		listen 80;
		root /home/putter;
		index index.php index.html index.htm;
		server_name www.ruk-com.in.th ruk-com.in.th;
		location / {
		try_files $uri $uri/ /index.php;
		}
		location ~ \.php$ {
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $remote_addr;
		proxy_set_header Host $host;
		proxy_pass http://127.0.0.1:8080;
	}
	location ~ /\.ht {
		deny all;
		}
	}

ແກ້ໄຂ Virtual Host ຂອງ Apache

ServerAdmin [email protected]
DocumentRoot /home/putter
ServerName www.ruk-com.in.th
ErrorLog logs/exruk-com-error_log
CustomLog logs/ruk-com-access_log common
AllowOverride All

ແກ້ໄຂ /etc/httpd/conf/httpd.conf ໃຫ້ Apache ເປີດພອດ 8080 ແທນ

Listen 127.0.0.1:8080

ແກ້ໄຂ php-fpm ທີ່ /etc/php-fpm.d/www.conf ໂດຍແກ້ໄຂ user = apache ແລະ group = apache ໃຫ້ເປັນ nginx

; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
service httpd restart
service nginx start
service php-fpm restart
service mysqld restart
chkconfig httpd on
chkconfig nginx on
chkconfig php-fpm on
chkconfig mysqld on

ທີ່ມາ
https://www.digitalocean.com/community/articles/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-6