CHIA SẺ:

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.

Xem thêm

80 Comments

  1. thien 24

    Ý 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.

    1. Luân Trần Admin

      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

  2. Vu Hoang Nam 1

    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 🙁

      1. Anh Tuan 2

        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

          1. Anh Tuan 2

            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 ạ

          2. Luân Trần Admin

            Gửi mình thông tin tài khoản root vào mail để check thêm chi tiết nhé.

  3. Nam 15

    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.

    1. Luân Trần Admin

      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.

  4. Vector6 2

    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.

  5. Tin 12

    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.

      1. Tin 12

        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?

        1. Luân Trần Admin

          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.

          1. Tin 12

            Để 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!

  6. tri le 3

    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.

    1. Luân Trần Admin

      Bạn tạo file info.php với function phpinfo(); sẽ có đường dẫn php đó.

  7. Ngọc Anh 2

    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

  8. Lữ Phú Hòa 17

    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

  9. cuong 1

    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’

  10. Tis 1

    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 ?

    1. Việt Phương Moderator

      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

    1. Việt Phương Moderator

      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

        1. Việt Phương Moderator

          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

Comment của bạn

Your email address will not be published. Required fields are marked *