Cũng định dừng chủ đề cấu hình LEMP ở Phần IV rồi, cơ mà search trên mạng mấy từ cài phpMyAdmin CentOS 7 PHP 7 Nginx mà mỏi mắt không thấy hướng dẫn nào cả, LEMP Stack với CentOS 5/6 thì một rổ. Thôi thì thêm Phần V nữa cho nó đủ bộ anh em còn có cái đọc.
1. Yêu cầu
- Không có gì đặc biệt cả, chỉ cần một con server mới kính koong chưa cài bất kỳ một phần mềm nào khác, với máy ảo bạn nên mua VPS tại Linode, DigitalOcean, Vultr.
- Đã đọc bộ tài liệu cấu hình LEMP Server của mình.
2. Nạp package cần thiết
Để cài bản mới nhất bạn cần nạp các package từ kho chứa của remi
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm
Tiếp theo active một số repo con của remi
vi /etc/yum.repo.d/remi.repo
Đây là cách làm đơn giản giúp các bạn tìm hiểu về hệ thống Linux dễ tiếp cận, việc phóng một loạt câu lệnh với cú pháp loằng ngoằng dễ làm mọi người chóng ngợp và sẽ sinh ra Copy & Paste. Mình sẽ hướng dẫn các bạn active repo và cài phpMyAdmin chỉ bằng một lệnh ở bước tiếp theo, trước mắt cần sửa enabled=1
như hình bên dưới.
Kiểm tra lại phiên bản lần cuối trước khi cài yum info phpMyAdmin
3. Cài đặt phpMyAdmin 4.5.5.1
Tiến hành cài đặt từ package vừa nạp, chạy lệnh
yum install phpMyAdmin
Nếu bước trên chưa active repo remi và remi-test bạn có thể dùng lệnh sau để cài đặt một cách nhanh chóng
yum --enablerepo=remi,remi-test install phpMyAdmin
4. Cấu hình phpMyAdmin trên Nginx
Về bản chất nó cũng như bao website PHP khác bạn có thể tạo Virtual host trên nginx rồi gán domain cho nó như chạy một Website độc lập.
Ở đây mình sẽ hướng dẫn các bạn cách nhanh hơn, theo mặc đinh nó được cài đặt vào /usr/share/phpMyAdmin
, thay vì copy toàn bộ thư mục này vào Virtual Host bạn chỉ cần tao một symbolic vào Root Document của Virtual host.
Lúc đó bạn sẽ truy cập theo đường dẫn http://www.thuysys.com/phpmyadmin.
ln -s /usr/share/phpMyAdmin /var/www/www.thuysys.com/public_html
Chú ý:
Khi truy cập phpmyadmin sẽ khởi tạo session mới trong /var/lib/php/session/
. Cũng như php-fpm, nó cũng sẽ chịu sự quản lý bởi user nginx thuộc group nginx, do đó bạn cần phải gán quyền sở hữu cho /var/lib/php/session/
.
Thiếu sót do gán quyền sở hữu cũng là tác nhân gây ra lỗi:
Warning in ./libraries/plugins/auth/AuthenticationCookie.class.php#329 session_destroy(): Session object destruction failed Backtrace ./libraries/plugins/auth/AuthenticationCookie.class.php#329: session_destroy() ./libraries/common.inc.php#896: AuthenticationCookie->authCheck() ./index.php#12: require_once(./libraries/common.inc.php)
Để sửa lỗi các bạn chạy lệnh:
chown -R nginx:nginx /var/lib/php/session/ chmod 700 /var/lib/php/session
Xong, để đăng nhập vào quản trị cơ sở dữ liệu bạn nhập user và mật khẩu root của MariaDB/MySQL vào nhé.
Mình dừng bài viết tại đây, bạn xem thêm cách cài phpMyAdmin với Apache trên LAMP để tham khảo.
Cho mình hỏi, mình có cấp quyền cho nginx sở hữu /var/lib/php/sesion rồi, nhưng vấn đề ở đây là vps mình chia ra nhiều user, mỗi user sỡ hữu 1 website và sử dụng proxy cgi khác nhau (9001.9002,9003 ..) , thì làm sao để tất cả user có quyền trên /var/lib/php/session nhỉ
Có vấn đề gì đâu bạn vẫn dùng bình thường mà, theo mình hiểu bạn đang dùng TCP cho FastCGI. Nhiều user tương ứng với nhiều php pool, nó chỉ ra cổng mà nginx làm việc với trình thông dịch (php-fpm), không liên quan đến việc nginx quản lý session hay không.
Hiện tại, mình đang cấp quyền cho /home/websiteA sở hữu bởi userA:groupA rồi
Nhưng khi cấp quyền cho nginx sở hữu /var/lib/php/session thì userA lại bị not permision, dẫn tới websiteA không truy cập được phpMyadmin cũng như không lưu được session.
Như ở trên kia, mình đã set mỗi user sở hữu 1 website khác nhau và mỗi user sẽ đảm nhận quản lý 1 proxy của PHP-FPM (mặc định nginx và group nginx quản lý proxy 9000 thì phải).
Có cách nào giải quyết vấn đề này không Mr Thuy ?
Bạn chmod cho user khác có quyền read write là được
chmod -R 777 /var/lib/php/session
Vì ngoài sử dụng session của phpmyadmin ra, những website khác trên vps cũng có những tác vụ khác [liên quan tới session] lên thư mục này.
Mình sợ dùng chung /var/lib/php/session thì các user có thể bợ session của nhau, cái này có nguy hiểm ko nhỉ ?
Nó chỉ lưu session truy cập webserver của bạn thôi ngoài ra không lưu gì cả, bạn dùng bình thường nhé.
Thanks nhé. Mình đã xly được rồi.
disable remi-php71 và restart php-fpm.service là ok.
hi MR Thủy,
mình install phpmyadmin xong thì khi chạy bị lỗi.
nội dung error.log như sau:
2016/09/21 09:11:48 [error] 6780#0: *1 FastCGI sent in stderr: “PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc:177
Stack trace:
#0 /usr/share/php/gettext/gettext.inc(279): _encode(‘The %s extensio…’)
#1 /usr/share/php/gettext/gettext.inc(286): _gettext(‘The %s extensio…’)
#2 /usr/share/phpMyAdmin/libraries/core.lib.php(306): __(‘The %s extensio…’)
#3 /usr/share/phpMyAdmin/libraries/core.lib.php(961): PMA_warnMissingExtension(‘mbstring’, true)
#4 /usr/share/phpMyAdmin/libraries/common.inc.php(102): PMA_checkExtensions()
#5 /usr/share/phpMyAdmin/index.php(13): require_once(‘/usr/share/phpM…’)
#6 {main}
thrown in /usr/share/php/gettext/gettext.inc on line 177” while reading response header from upstream, client: 113.20.119.114, server: topoftheworld.online, request: “GET /phpMyAdmin/ HTTP/1.1”, upstream: “fastcgi://unix:/var/run/php-fpm/php-fpm.sock:”, host: “xxxworld.online”
bạn có thể giúp mình được không.
Bạn kiểm tra hai gói mbstring và gettext đã cài chưa nếu chưa thì chạy lệnh
yum install php-mbstring php-gettext
Mình đã cài rồi bạn à.
# yum install php-mbstring php-gettext
Loaded plugins: fastestmirror
base | 3.6 kB 00:00
epel/x86_64/metalink | 5.1 kB 00:00
extras | 3.4 kB 00:00
mariadb | 2.9 kB 00:00
remi | 2.9 kB 00:00
remi-php70 | 2.9 kB 00:00
remi-php71 | 2.9 kB 00:00
remi-safe | 2.9 kB 00:00
remi-test | 2.9 kB 00:00
updates | 3.4 kB 00:00
(1/2): remi/primary_db | 1.5 MB 00:02
(2/2): remi-safe/primary_db | 528 kB 00:02
Loading mirror speeds from cached hostfile
* base: mirror.readyspace.com
* epel: epel.mirror.angkasa.id
* extras: mirror.readyspace.com
* remi: rpms.remirepo.net
* remi-php70: rpms.remirepo.net
* remi-php71: rpms.remirepo.net
* remi-safe: rpms.remirepo.net
* remi-test: rpms.remirepo.net
* updates: mirror.readyspace.com
Package php-mbstring-7.1.0-0.4.RC2.el7.remi.x86_64 already installed and latest version
Package php-common-7.1.0-0.4.RC2.el7.remi.x86_64 already installed and latest version
Nothing to do
———-
vào /phpMyAdmin vẫn bị lỗi vậy.
Bạn dùng VPS ở đâu vậy, check php đã chạy ok chưa.