Do đã xuất hiện từ lâu nên LAMP (viết tắt của Linux, Apache, MySQL, và PHP) được dùng rất phổ biến trên thế giới.
Các bước cài đặt LAMP trên CentOS
Đầu tiên bạn cần chuẩn bị một server CentOS mới tinh chưa cài gì cả, ở đây mình dùng CentOS 6.4 64bit. Trước khi thao tác bạn cần phải đổi lại hostname và chỉnh sửa file host.
1. Cài đặt Apache
yum install httpd
Đường dẫn file cấu hình Apache:
/etc/httpd/conf/httpd.conf
Khởi động Apache
service httpd start
Test thử bằng cách truy cập vào http://<youraddress> bạn sẽ thấy thông báo “Apache 2 Test Page”
Lưu ý: nếu sử dụng VPS ở Vultr, mặc định port 80 sẽ bị block, khi truy cập vào IP sẽ bị báo lỗi ERR_CONNECTION_REFUSED. Bạn hãy thực hiện thêm thao tác mở port như sau:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /etc/rc.d/init.d/iptables save
Cấu hình Apache Virtual Hosts
– Tạo một file cấu hình ở thư mục /etc/httpd/conf.d
, đặt tên ví dụ example.com.conf
(thay bằng domain của bạn)
Nội dung file /etc/httpd/conf.d/example.com.conf
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html/ ErrorLog /var/www/example.com/logs/error.log CustomLog /var/www/example.com/logs/access.log combined </VirtualHost>
– Tạo thư mục cho website
mkdir -p /var/www/example.com/public_html mkdir /var/www/example.com/logs
– Nếu muốn thêm website, bạn chỉ cần tạo thêm một file .conf khác và reload lại Apache với lệnh: service httpd reload
2. Cài đặt MySQL
yum install mysql-server service mysqld start
Tiến hành cài đặt MySQL bằng lệnh
/usr/bin/mysql_secure_installation
Do mới cài đặt nên nếu bị hỏi password bạn nhấn Enter
Enter current password for root (enter for none): OK, successfully used password, moving on...
Sau đó cần đặt root password bằng cách chọn y
Tiếp theo bạn sẽ phải trả lời một loạt các câu hỏi, tốt nhất cứ chọn y
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!
3. Cài đặt PHP
yum install php php-mysql
PHP Modules
PHP có rất nhiều thư viện module khác nhau, bạn có thể xem bằng cách gõ lệnh sau
yum search php-
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library php-cli.x86_64 : Command-line interface for PHP php-common.x86_64 : Common files for PHP php-dba.x86_64 : A database abstraction layer module for PHP applications php-devel.x86_64 : Files needed for building PHP extensions php-embedded.x86_64 : PHP library for embedding in applications php-enchant.x86_64 : Human Language and Character Encoding Support php-gd.x86_64 : A module for PHP applications for using the gd graphics library php-imap.x86_64 : A module for PHP applications that use IMAP
Để cài module nào dùng lệnh sau
yum install name of the module
4. Tự động chạy service khi reboot
chkconfig httpd on chkconfig mysqld on
Restart Apache
service httpd restart
OK vậy là quá trình cài đặt LAMP trên CentOS vậy là xong.
Giúp mình chạn truy cập web bằng Ip chỉ cho bằng domain name thôi
vd: domain: abc.com cài đặt trên server có IP 123.123.123.123
bây giờ mình có thể truy cap web bằng tên domain hoặc bằng ip: 123.123.123.123
Có cách nào chỉ cho truy cap bằng tên miền: abc.com còn truy cập bằng ip 123.123.123.123 bị bị chặng hoặc hiện 1 cái thông báo lỗi.
Thanks
Bạn thiết lập cho localhost, nhớ đặt trong block VirtualHost *:80
ServerName localhost
Redirect 403 /
UseCanonicalName Off
UserDir disabled
Cám ơn Phương đã Rep lại,
Mình làm để localhost thì kho dc, nhưng thay localhost bằng IP 123.123.123.123 thì okie.
Thanks
Ok bạn nhé
Enter current password for root (enter for none):
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
Em cài đặt mysql thì báo vầy
– Gõ Enter thì tiếp tục có thông báo
– Còn ghi chữ vào cũng không ghi đc
Mình thử chạy cái code grab nó bị lỗi 500 bác ạ. mà file .htaccess up lên nó chuyển qua htaccess
giờ làm sao hả bác
Bạn up qua các trình kéo thả à? Bạn nên zip cả source web up lên rồi giải nén chứ đừng up kiểu thư mục thế. Và mình hiện cũng không rõ code grab bạn như thế nào nên vấn đề 500 Error chưa hiểu lắm
MÌNH CŨNG zip xong download về vps xong unzip mà k đc luôn
Mình đang nói về vấn đề file htacess thôi chứ còn cái lỗi kia là do bạn cấu hình thư mục web với web server và database đã đúng chưa
không hiểu nguyên nhân gì mình cứ lỗi này hoài
Lỗi gì vậy bạn?
Sửa tất cả những chỗ có example.com hả bạn . Với cả các module nên cài nhưng cái nào bạn ?
Uhm. Các module thì tùy vào mục đích sử dụng của bạn cần đến module nào thì cài thêm thôi
Muốn cài hết thì dùng lệnh nào bạn ? . Cài hết VPS có bị sao không ? . Cám ơn bạn !
Bạn chỉ cần cài các module cần dùng đến thôi. Và sau có thể cài thêm mà. Cài thì
# yum install module1 module2 module3
Có cần phải sửa example.com thành domain của mình không anh Luân ?
Có bạn, cài đúng servername để nhận nhé
Bạn ơi cho hỏi mình muốn cài lamp cho vps theo topic của bạn nhưng tại sao phải đổi hostname và thay đổi thông tin IP vậy? mình muốn cài lamp nhưng giữ nguyên hostname của mình và IP do bên DVụ Máy chủ cung cấp thì cần làm gì vậy bạn ?
Một số phần mềm yêu cầu server phải được thiết lập chính xác thông tin FQDN (Fully Qualified Domain Name) cho hostname. Đây cũng là vấn đề thường xuyên gặp phải trong khi làm việc với CentOS.
Bạn có thể không cần thay đổi hostname cũng được
Mình bị lỗi này.
Mong admin giúp đỡ
error 2002 (hy000) can’t connect to local mysql server through socket ‘/var/lib/mysql/mysql.sock’
Bạn kiểm tra lại service MySQL có đang hoạt động không?
Thường lỗi này là mysql không hoạt động, nguyên nhận là hết ổ cứng. Bạn kiểm tra xem ổ cứng còn bao nhiêu.
sau vài ngày nghiên cứu xin chia sẽ thêm cho anh em như sau là có thể thêm 1 domain mới
nội dung này có thế Tạo một file cấu hình ở thư mục /etc/httpd/conf.d hoăc add trực tiếp vào /etc/httpd/conf/httpd.conf đều được nhé
có gì không đúng admin fix lại dùm nhé, tks!
===========
NameVirtualHost *:80 #dòng này có thể bỏ từ domain thứ 2 trở đi để tránh gặp lỗi dupe
ServerName example.com
ServerAlias http://www.example.com
DocumentRoot /var/www/example.com/public_html/ #có thể đổi qua thư mục khác như /home/userlinux/ nhưng phải phân quyền cho apache:apache và user khác
Chuẩn nhé 😀
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
đó là lỗi khi em gõ pass vào. Em gõ đúng rồi mà vẫn không được
Check lại service MySQL có đang chạy không bạn?
Ad cho hỏi patch của php-cli được không. Mình tìm ko ra được. Đã yum install php-cli và báo đã cài.
Bạn tạo file info.php với function phpinfo(); sẽ có đường dẫn php đó.
Mình làm hoài ko được, nó nhảy ko đúng như hướng dẫn, ai cài dùm mình với.
Mình start apache báo ok rồi nhưng gõ http://ip thì ko thể kết nối là sao vậy Luân
Hi,
Có bài viết nào về tối ưu dành cho webserver nào không bạn? Cài nginx thì chạy oke lắm nhưng nhiều hàm nó không chạy nên đành chuyển sang nghiên cứu LAMP, cái này mà có script như nginx thì quá tuyệt.
Bạn cần hàm gì nhỉ, thường thì Nginx hỗ trợ hết như Apache
Chào bạn,
Mình có web cũng có chạy vài hàm auto, mà bên nginx thì nó không chạy được, nó không chuyển trạng thái được, chạy bên Apache thì oke mà bên nginx thì bị lỗi, đang tìm hiểu mà chẳng biết bị sao nữa.
Bạn có tối ưu cho apache không vậy?
Nếu không có thông tin cụ thể thì mình chịu rồi. Apache mình không sử dụng mấy nên ko có nhiều kinh nghiệm. À mà bạn nên sử dụng Varnish làm frontend cache nếu dùng Apache.
Để mình xem lại thế nào, có gì sẽ pm hỏi bạn sau. Cám ơn bạn rất nhiều!
Mình bắt đầu cài sudo yum install httpd
thì hiện lên:
[root@vultr ~]# sudo yum install httpd
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: http://ftp.riken.jp
* epel: http://ftp.kddilabs.jp
* extras: http://ftp.riken.jp
* updates: http://ftp.riken.jp
http://ftp.kddilabs.jp/Linux/packages/fedora/epel/6/x86_64/repodata/98b7fa7eb7c5d0de7e158efc19fb3dc802281b1d55d64a96b2bb9b2413dd95b7-primary.sqlite.bz2: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”
Trying other mirror.
http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/repodata/98b7fa7eb7c5d0de7e158efc19fb3dc802281b1d55d64a96b2bb9b2413dd95b7-primary.sqlite.bz2: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”
Trying other mirror.
http://mirror.premi.st/epel/6/x86_64/repodata/98b7fa7eb7c5d0de7e158efc19fb3dc802281b1d55d64a96b2bb9b2413dd95b7-primary.sqlite.bz2: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”
Trying other mirror.
http://ftp.cuhk.edu.hk/pub/linux/fedora-epel/6/x86_64/repodata/98b7fa7eb7c5d0de7e158efc19fb3dc802281b1d55d64a96b2bb9b2413dd95b7-primary.sqlite.bz2: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”
Trying other mirror.
Mình có bài hướng dẫn đây rồi nhé: https://hocvps.com/xu-ly-loi-errno-14-pycurl-error-22/
Vừa mới mò ra cách xử lý xong đó 😀
Tuyệt vời !! xin cám ơn bác Luân!!!
anh ơi cho em hỏi em dùng VPS chạy centos7 cài đặt lamp và sau đó em up website qua ftps với quyền root. Mọi thư hoạt động trơn tru nhưng em up hình ảnh từ trang web thì hình ảnh không chạy lên vps. Em nghi là khi em up srouce code bằng quyền root thì admin trang web k có quyền truy cập phải k ạ. Để giải quyết vấn đề phải làm sao xin anh hãy chỉ em với.Có phải mình up qua ftp mới được phải k ạ. Em đa thức khuya nhiều đêm tìm hiểu nhưng k biết làm. Nếu anh biết in hay giúp em qua teamview . Em xin cám ơn và hậu tạ 500k tiền cafe ạ
Hình ảnh không chạy trên VPS là sao bạn. Bạn truy cập VPs xem ảnh thuộc quyền gì
Mình cài xong rồi sao các file .css không đọc được nhỉ
Không đọc được là sao bạn nhỉ?
Tới bước cài PHP, PHP Modules có cần phải cài ko, hay là đọc cho biết và skip qua, còn nếu cài thì cài cái nào để chạy đc wordpress vậy aLuan?
Cám ơn anh.
PHP thì bắt buộc phải cài thì mới dùng được WP, còn module thì tùy nhu cầu sử dụng mà cài đặt thêm nhé bạn.
Mình mới mua một VPS tren Ramnode.
Đã cài đặt được Apache như hướng dẫn.
Tuy nhiên ko thể test access duoc URL 🙁
> Test thử bằng cách truy cập vào http:// bạn sẽ thấy thông báo “Apache 2
> Test Page”
=>
Access cái IP Address Ramnode cung cấp thì luôn bị báo là “This webpage is not available”, ko hiểu là thế nào ?, giúp mình với 🙁
Mình đoán bạn chưa start Apache rồi
Em start Apache rồi, nhưng truy cập IP vẫn không chạy ra trang “Apache 2 Test Page”, em không biết lỗi ở đâu nữa, admin giúp em với
Có thông báo gì ko bạn?
em làm đúng như trên, Lúc em nhập dòng “sudo service httpd start” thì chỉ trả về một dòng “Stating httpd:”, chạy IP thì không thấy gì hết ạ
Gửi mình thông tin tài khoản root vào mail để check thêm chi tiết nhé.
Lậy chúa ới nguyến nhân chính là nó.
Thanks.
Ý bạn là hostname ở chỗ này ha bạn:
111.222.333.444 datcucgach.com datcucgach
mình sử full như bạn hướng dẫn.
Chuyển lại cho mình với, không cần thiết để full domain. Vì lúc này VPS sẽ hiểu domain kia sẽ có IP là 104.238.161.145
Không bạn mình test trên trình duyệt vẫn tải ok mà.
Bạn để hostname của VPS là gì, đừng để full domain nhé.
Mình đã cai xong các bước đên lúc down code về thì thì lại gặp lỗi này:
[root@vtoolfix public_html]# wget http://vtoolfix.com/vtoolfix.zip
–2015-03-19 06:48:30– http://vtoolfix.com/vtoolfix.zip
Resolving vtoolfix.com… 104.238.161.145
Connecting to vtoolfix.com|104.238.161.145|:80… connected.
HTTP request sent, awaiting response… 404 Not Found
2015-03-19 06:48:30 ERROR 404: Not Found.
xin được chỉ giáo thanks you.
trên Ngix thì down phà phà.
Có vẻ như domain đó đang trỏ đến đúng cái IP server mà bạn định down xuống 🙂
cho mình hỏi chút khi cào xong apache, PHP, MySQL xong thì mình sửa file httpd.conf đoạn cuối này:
#
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#
thay example.com thành domain của mình và up code cào var/www lạ chạy được web chưa bạn.
Thanks
cho mình hỏi cách sử lỗi này vơi:
Starting httpd: httpd: apr_sockaddr_info_get() failed for vultr.guest
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
Dòng đầu tiên thì mình ko rõ, còn dòng thứ 2 ko ảnh hưởng gì cả.
Chào Luân,
Mình có cài và đã chạy ok, nhưng không hiểu sao lhi up website lên thì không connect được đến MySQL, không biết có phải do website bị sao không nhưng khi dùng trên windows vs xampp thì chạy bình thường, up lên các hosting free cũng như mua của các hãng dịch vụ thì chạy bình thường.
Một số website thì connect được MySQL nhưng có code chạy được, có code lại lỗi, mặc dù đã test trên máy và các hosting khác thì không bị như vậy.
Mong được Luân giải đáp, cám ơn nhiều.
Bạn cho mình biết thông báo lỗi là gì với?
Mình bị lỗi Laravel requires the Mcrypt PHP extension.
Mình dùng lệnh này: sudo apt-get install php5-mcrypt
Nhưng ko cài đc mcrypt. Luân giúp mình nhé, Cảm ơn bạn.
Mình đã test xong vào báo đang chạy nhưng tại sao vẫn không truy cập được ip nhỉ. Nếu không truy cập được thì liệu có cài được các bước tiếp theo ko Luân. Xin cảm ơn
https://sites.google.com/site/datphuongbac/_/rsrc/1420615710055/home/test%20apache.PNG
test thành công
https://sites.google.com/site/datphuongbac/_/rsrc/1420615705023/home/ko%20truy%20cap%20dc.PNG
vẫn không vào ip được.
Luân có cao kiến gì chỉ mình với. Thanks
Gửi mình thông tin tk root vào admin@hocvps.com để mình coi sao
Chào Luân. Hiện mình đang dùng hosting đang mong muốn chuyển sang vps, mình đã tìm hiểu thông tin về vps và được biết hocvps là một trong những người có tâm quyết cũng như kiến thức chuyên môn cao. Xin cảm ơn nhưng bài của Luân.
Trong quá trình tìm hiểu và thực hành mình đã đăng ký VPS của Vultr đang được km 20$.
Bắt tay vào việc. Mình đã đổi hostname thành công và đã trỏ domain giaiphapfnb.net về vps rồi.
Khi cài đặt Apache cũng không gặp báo gì lỗi. Nhưng khi truy cập vào IP thì không được.
Một số hình ảnh Luân xem hộ mình với.
Thông tin tài khoản
https://sites.google.com/site/datphuongbac/_/rsrc/1420528161554/home/vitul.PNG
Đổi hostname thành công và cài đặt apache
https://sites.google.com/site/datphuongbac/home/hostname.PNG?attredirects=0
Không thể truy cập được ip
https://sites.google.com/site/datphuongbac/_/rsrc/1420528153547/home/apache.PNG
Mong được hướng dẫn chi tiết (mặc dù đã làm theo video của bạn Thạch Phạm) nhưng tới apache lại không cài được.
Xin cảm ơn nhiều.
Nói hơi quá lời rồi nhưng cũng xin cảm ơn bạn.
Về vấn đề kia, bạn hãy check lại xem service Apache có đang chạy hay không với lệnh
service httpd status
hoặc dùng lệnhtop
Minh sài vultr đã thay đổi hostname
nhưng khi chạy lệnh Cài đặt Apache rồi mình vào trình duyệt gõ ip thì bị The connection has timed out
minh sài HOSTNAME=datcucgach.com lun
Luân làm bài hướng dẫn về EC2 của Amazon Web Services đi Luân, anh thấy gói free tier của nó cũng ổn phết, mỗi tội băng thông hơi ít.
Chạy lệnh cài đặt thì gặp lỗi này là sao vậy ad?
“–2014-08-22 01:37:42– https://hocvps.com/scripts/build
Resolving hocvps.com (hocvps.com)… failed: Name or service not known.
wget: unable to resolve host address ‘hocvps.com'”
VPS của bạn hình như không có mạng rồi. Thử
ping google.com
xem có được không?Nó báo thế này bạn ah ” ping: unknown host google.com” , chắc là phải alo cho nhà quản lý ah?
Bạn viết ticket liên hệ support đi, ghi cái lệnh ping kia vào là họ hiểu
Họ trả lời có 1 câu mà mình chẳng hiểu gì cả, ad giúp với!! 🙁
“Please check /etc/resolv.conf to make sure resolvers exist”
Bạn xem ở đây (đoạn Example: Changing DNS server settings on a Debian server): https://developers.google.com/speed/public-dns/docs/using
Thanks ad. Mày mò mãi cuối cùng cũng làm được theo hướng dẫn ở đây:
http://www.itweb.vn/cau-hinh-network-tren-centos-6/
http://nhatphuc.com/cach-thiet-lap-mang-va-internet-trong-centos-6/
Mới cài xong hocvps rồi, giờ vọc đã :))
chao ban,minh lam theo ban buoc 1 da cai thanh cong apache roi no bao ok hết,nhưng mình dùng ip đăng nhập kiểm tra thử thì không vào được. giúp mình voi
Bạn dùng lệnh
top
xem service apache có đang chạy không?Site mình đang chạy vps 2 core, RAM 2GB bên Vultr, online tầm 1k5 tính theo amung là vps die lên die xuống rồi. Mình đang dùng servertut. Theo bạn mình nên cài LAM, hay LEMP thì tốt hơn.
Hoặc có hướng dẫn nào tối ưu hơn không ? Thanks bạn
Dùng Servertut là ngon rồi vì nó đã tối ưu căn bản cho VPS.
Giờ bạn tìm cách tối ưu thêm cho VPS bằng cách sử dụng cache, loadbalancing xem như thế nào?
Chào bạn,
Cho minh hỏi để chạy ổn WP trên LAMP thi cần cài thêm nhưng thư viện module nào của PHP, hay chỉ cần PHP thôi ?
Giờ người ta thường kết hợp cả Apache + Nginx thì phải (apache chạy các file .php còn nginx đảm nhiệm các file tĩnh như .css , .zip .các file ảnh và file khác)
Em làm theo i xì mà cuối cùng nó lại bị error establishing a database connection :((
Bạn check lại mysql có đang chạy không? Nếu không thì có thể do server hết RAM tự kill cái đó đi. Reboot lại là được.
Chú ý tạo swap nữa nhé.
Mình gặp lỗi Server error ở trang chủ 🙁 mặc dù tất cả các thứ đều tốt.
Có cách nào không bạn?
Thanks
Sau một buổi tối mò mò mẫm mẫm trên mạng đã cài đặt thành công cho em centos 6 trên ramnode.
Bạn nào bị giống mình thì xem lại file htaccess nhé.
Xin cảm ơn bài viết rất hay và bổ ích.
Em đang nghiên cứu cách quản lý VPS.
Cài thử LAMP nhưng đến bước khởi động và restart APACHE thì bị lỗi này là sao hả anh:
[root@HoangVietPhu ~]# sudo service httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd: apr_sockaddr_info_get() failed for HoangVietPhu
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
Đó là bạn chưa thay đổi hostname: https://hocvps.com/thay-doi-hostname-trong-linux/
Làm hệt như bạn nói và giờ bị lỗi
Error establishing a database connection
Bạn check lại MySQL service xem sao
em muốn cài gói php version 5.3.28 thì cài sao vậy anh.
em lam cach này nhưng ko được:
dowload php-5.3.28.tar.gz về
giải nén ra được thư mục php-5.3.28
chmod -R php-5.3.28
cd php-5.3.28
rồi ./INSTALL
kQ: ./INSTALL: line 46: the: command not found
./INSTALL: line 47: online: command not found
./INSTALL: line 48: __________________________________________________________________: command not found
./INSTALL: line 50: General: command not found
./INSTALL: line 52: Before: command not found
./INSTALL: line 53: want: command not found
./INSTALL: line 54: described: command not found
./INSTALL: line 55: syntax error near unexpected token `(‘
./INSTALL: line 55: ` * Websites and web applications (server-side scripting)’
[root@server1 php-5.3.28]#
Em muốn cài đặt phiên bản cũ của PHP à?