nginx+php+mysql на Entware(mipsel)

Используем пакеты, расширяющие возможности оборудования
yuoras
Сообщения: 81
Зарегистрирован: 21 сен 2015, 19:22

Сообщение yuoras » 25 окт 2015, 20:18

Прописал , как Вы описали
теперь

Код: Выделить всё

server {
    listen    80;
        server_name  xxxx.xxxxx.in.ua;
    location / {
	root /opt/share/www;
	index index.php index.html index.htm;
}
    	
	location ~ \.php$ {
            include        fastcgi_params;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;
            }
	}

Код: Выделить всё

; Paths and Directories

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
doc_root = "/opt/share/www"
user_dir =
extension_dir = "/opt/lib/php"
enable_dl = On
;cgi.force_redirect = 1
;cgi.nph = 1
;cgi.redirect_status_env = ;
cgi.fix_pathinfo=1
;fastcgi.impersonate = 1;
;fastcgi.logging = 0
;cgi.rfc2616_headers = 0

Свой проект перенёс в папку /opt/share/www
ZyXEL Keenetic Giga II на Entware

Аватара пользователя
TheBB
Сообщения: 119
Зарегистрирован: 31 авг 2015, 02:24
Откуда: 26 ~44.098,43.022

Сообщение TheBB » 25 окт 2015, 21:01

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; <- эту строку надо добавить в /opt/etc/nginx/fastcgi_params
K Giga II NDMSv.2.06C/2.11D/2.15A + Entware-Keenetic/Entware&Gentoo; K DSL NDMSv.2.05C/2.11D + Entware-Keenetic/Entware&Debian 8.11/9.6

yuoras
Сообщения: 81
Зарегистрирован: 21 сен 2015, 19:22

Сообщение yuoras » 25 окт 2015, 21:51

спасибо , попробую
ZyXEL Keenetic Giga II на Entware

yuoras
Сообщения: 81
Зарегистрирован: 21 сен 2015, 19:22

Сообщение yuoras » 26 окт 2015, 21:10

TheBB писал(а):Источник цитаты fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; <- эту строку надо добавить в /opt/etc/nginx/fastcgi_params

Сделал .
Вот результат No input file specified.
ZyXEL Keenetic Giga II на Entware

Аватара пользователя
TheBB
Сообщения: 119
Зарегистрирован: 31 авг 2015, 02:24
Откуда: 26 ~44.098,43.022

Сообщение TheBB » 23 ноя 2015, 16:38

http://nginx.org/ru/
http://php.net/manual/ru/
http://forum.zyxmon.org/topic467-web-server-nginx-na-kinetik.html
http://forum.zyxmon.org/topic470-mysql-na-zyxel-keenetic.html
этап 1. nginx
 
обновляем список пакетов:

Код: Выделить всё

opkg update

устанавливаем сервер:

Код: Выделить всё

opkg install nginx

правим конфиг:

Код: Выделить всё

nano /opt/etc/nginx/nginx.conf

(изменяем номер порта, на к-ром будет работать сервер, прописываем путь до каталога, где будут находиться файлы сервера)

Код: Выделить всё

user  root;  <-- пользователь, от имени к-рого запускается сервер (admin, root, nobody, etc... )
...
server {
    listen  80; <--  номер порта - 80 (можно оставить, если номер порта webgui интернет центра изменен, или установить свой, напр., 88;)
...
location / {
    root  html; <--  путь до каталога, где будут находиться файлы сервера (напр., /opt/share/nginx; /opt/www; /opt/web, etc...)
...    
location = /50x.html {
    root  html; <--  путь до файлов страниц ошибок (напр., opt/share/nginx/html; /opt/www/html; /opt/web/html, etc...)
...

выходим, сохраняем изменения + создаем копию: ctrl+x -> y -> alt+b -> y
это минимально необходимые изменения конфига для вменяемого запуска сервера ;)
чтоб увидеть радостый велкам, добавим штрих, перенесем index.html в корень каталога сервера:

Код: Выделить всё

cp /opt/share/nginx/html/index.html /opt/share/nginx/ или /opt/web или /opt/www (смотря как настроили)

можно запустить и посмотреть результат работы:

Код: Выделить всё

/opt/etc/init.d/S80nginx start 

смотрим в браузере по ip.add.re.ss:yy кинетика, где yy - номер порта сервера nginx
!!! строки логов закомментированы, но логи пишутся с завидным постоянством.

Код: Выделить всё

cat /opt/var/log/nginx/error.log 

nginx с упорством ищет favicon.ico, о чем и пишет в еррор.лог.
т.к. без РНР скучно, то...
Свернуть

этап 2. РНР
 

Код: Выделить всё

opkg update
opkg install php5 php-cli php5-fpm

почему php5-fpm? потом и его настроем, а пока нам сгодится то, что он тянет за собой php-cgi(php5-cgi) и php-fcgi(php5-fastcgi)
для начала создадим:
1. классика ;)

Код: Выделить всё

echo "<?php phpinfo(); ?>" > /opt/share/nginx/phpinfo.php

или так:

Код: Выделить всё

echo -e "<?php\necho \"PHP-FCGI TEST\";\nphpinfo();\n?>" > /opt/share/nginx/phpinfo.php

2. и файл лога ошибок РНР (он сам не создается):

Код: Выделить всё

touch /opt/var/log/php_errors.log 

внесем изменения в php.ini

Код: Выделить всё

...
log_errors = Off   <--  включаем логирование, заменив на On
...
;error_log = /opt/var/log/php_errors.log   <-- раскомментируем строку, убрав ";"
...
doc_root = "/opt/share/www"   <-- домашний каталог (в nginx.conf у нас было - /opt/share/nginx/html;/opt/www/html; /opt/web/html, etc...)
...
[Date]
;date.timezone =   <-- раскомментируем строку, убрав ";", и прописываем свою зону, напр., Europe/Moscow
...

подправим nginx.conf для работы с РНР:

Код: Выделить всё

...
index  index.html index.htm;   <-- допишем index.php
...
#location ~ \.php$ {    <-- раскомментируем, удалив "#"
        #    root           html;    <-- раскомментируем, удалив "#" и пропишем путь до каталога сервера (напр. /opt/share/nginx/html; /opt/www/html; /opt/web/html, etc...) 
        #    fastcgi_pass   127.0.0.1:9000;    <-- раскомментируем, удалив "#"
        #    fastcgi_index  index.php;    <-- раскомментируем, удалив "#"
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;    <-- $document_root$fastcgi_script_name; или пописать реальный путь
        #    include        fastcgi_params;    <-- раскомментируем, удалив "#"
        #}     <-- раскомментируем, удалив "#"
...

допишем в файл fastcgi_params (/opt/etc/nginx/) пару строк:

Код: Выделить всё

...
fastcgi_param  CONTENT_LENGTH     $content_length;
                                                         <-- fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
                                                         <-- fastcgi_param  PATH_INFO          $fastcgi_path_info;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
...

организуем автозапуск. пойдем по пути наименьшего сопротивления и создадим копию файла S80nginx c другим именем, напр., S30php и внесем в него изменения:

Код: Выделить всё

...
PROCS=nginx <-- меняем имя бинарника на php-fcgi (или php-cgi)
ARGS="-b 9000"
...

сохраняем изменения и (пере)запускаем:

Код: Выделить всё

/opt/etc/init.d/S30php start && /opt/etc/init.d/S80nginx restart

идем в браузере по ip.add.re.ss:88/phpinfo.php и смотрим...;)
!!! для работы на сокете в nginx.conf изменить строку:

Код: Выделить всё

...
fastcgi_pass   127.0.0.1:9000;  <-- fastcgi_pass  unix:/opt/var/run/php-fcgi.sock; # (или unix:/opt/var/run/php-cgi.sock;)
...

в файле S30php изменить:

Код: Выделить всё

...
ARGS="-b 9000"   <--   ARGS="-b /opt/var/run/php-fcgi.sock &" # (или ARGS="-b /opt/var/run/php-cgi.sock &")
...

а как же базы? mysql, так mysql...
Свернуть

этап 3. mysql
 
ставим пакет:

Код: Выделить всё

opkg update
opkg install mysql-server

подправим немного файл my.cnf:

Код: Выделить всё

...
basedir		= /opt     <--   basedir = /opt/
...
datadir	= /opt/var/  <--   datadir = /opt/var/mysql/
...

создаем базу:

Код: Выделить всё

mysql_install_db --datadir=/opt/var/mysql --basedir=/opt --force

запускаем:

Код: Выделить всё

/opt/etc/init.d/S70mysqld start

устанавливаем пароль для доступа к БД:

Код: Выделить всё

mysqladmin -u root password "your_pass_4_db"

подключаемся:

Код: Выделить всё

mysql -u root -p 

вводим пароль и шалимм в базе...
выход:
Свернуть

а как же php-fpm?
 
доп. этап для любителей острых ощущений
организуем (авто)запуск. создаем новый или изменяем в имеющимся файле S30php имя бинарника:

Код: Выделить всё

...
PROCS=php-fcgi <-- меняем на php-fpm
ARGS=""
...

сохраняем, далее правим php5-fpm.conf, в самом конце файла, укажем правильный путь:

Код: Выделить всё

...
include=/etc/php5-fpm.d/*.conf <-- include=/opt/etc/php5-fpm.d/*.conf

и сохраним его как - php-fpm.conf . дальше правим http://www.conf (/opt/etc/php5-fpm.d/):

Код: Выделить всё

...
; Note: This value is ......
listen = /opt/var/run/php5-fpm.sock  <-- если на сокете - оставляем, если порт - меняем на --> listen = 127.0.0.1:9000
...
;listen.mode = 0666   <-- раскомментируем, удалив ";"
...

и последнее, правим nginx.conf, указав порт или сокет:

Код: Выделить всё

...
root          /opt/share/nginx;
            fastcgi_pass   unix:/opt/var/run/php-fcgi.sock; <-- меняем на то, что выбрали в www.conf, сокет или порт
                                                                			unix:/opt/var/run/php5-fpm.sock;  или 127.0.0.1:9000;
											unix:/opt/var/run/php-cgi.sock
...
Свернуть

upd: исправлена опечатка
Последний раз редактировалось TheBB 10 апр 2016, 14:10, всего редактировалось 1 раз.
K Giga II NDMSv.2.06C/2.11D/2.15A + Entware-Keenetic/Entware&Gentoo; K DSL NDMSv.2.05C/2.11D + Entware-Keenetic/Entware&Debian 8.11/9.6

Yrzorg
Сообщения: 82
Зарегистрирован: 05 окт 2015, 13:23

Сообщение Yrzorg » 09 апр 2016, 23:11

TheBB писал(а):Источник цитаты этап 3. mysql

не взлетела у меня mysql, скрипт запуска отрабатывает, но в процессах нет и логов нет
лог запуск скрипта через strace http://pastebin.com/bCVd1wEB
Keenetic Ultra II+Entware
NDMS 3.7

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1913
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 09 апр 2016, 23:43

Yrzorg писал(а):Источник цитаты не взлетела у меня mysql, скрипт запуска отрабатывает, но в процессах нет и логов нет

Этапы настройки mysql прошли без ошибок?
Yrzorg писал(а):Источник цитаты лог запуск скрипта через strace

Показывает, что /bin/sh запустил бинарник и завершил работу. Какой сермяжный смысл отлаживать shell?

Yrzorg
Сообщения: 82
Зарегистрирован: 05 окт 2015, 13:23

Сообщение Yrzorg » 10 апр 2016, 12:17

Zyxmon писал(а):Источник цитаты Этапы настройки mysql прошли без ошибок?

да, вот до этого момента всё выглядит нормально
TheBB писал(а):Источник цитаты устанавливаем пароль для доступа к БД:
mysqladmin -u root password "your_pass_4_db"

при установе пароля

Код: Выделить всё

mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/opt/var/run/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/opt/var/run/mysqld.sock' exists!
Keenetic Ultra II+Entware
NDMS 3.7

Аватара пользователя
TheBB
Сообщения: 119
Зарегистрирован: 31 авг 2015, 02:24
Откуда: 26 ~44.098,43.022

Сообщение TheBB » 10 апр 2016, 12:46

Yrzorg писал(а):Источник цитаты не взлетела у меня mysq...

проверяйте, что не так делали. ниже - лог, типа "step-by-step" на примере torrentmonitor`a
log

Код: Выделить всё

BusyBox v1.24.1 () built-in shell (ash)

+++ установка +++

~ # opkg install mysql-server
Installing mysql-server (5.1.73-2) to root...
Downloading ftp://192.168.1.1/ENTWARE/packages/mysql-server_5.1.73-2_keenbe.ipk.
Installing libmysqlclient (5.1.73-2) to root...
Downloading ftp://192.168.1.1/ENTWARE/packages/libmysqlclient_5.1.73-2_keenbe.ipk.
Installing libreadline (6.3-1) to root...
Downloading ftp://192.168.1.1/ENTWARE/packages/libreadline_6.3-1_keenbe.ipk.
Configuring libmysqlclient.
Configuring libreadline.
Configuring mysql-server.

+++ создание базы данных (далее - БД) +++ 

~ # mysql_install_db --datadir=/opt/var/mysql --basedir=/opt --force
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/opt/bin/mysqladmin -u root password 'new-password'
/opt/bin/mysqladmin -u root -h KDSL password 'new-password'

Alternatively you can run:
/opt/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt ; /opt/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /opt/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/scripts/mysqlbug script!

+++ старт +++

~ # /opt/etc/init.d/S70mysqld start
 Starting mysqld...              done. 

+++ задание пароля +++

~ # mysqladmin -u root password "password4database"

+++ вход +++

~ # mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

+++++++++++++++++++++++++++++++++++++++++++++++++
+++ РАБОТА С БД (на примере torrentmonitor`a) +++
+++++++++++++++++++++++++++++++++++++++++++++++++

+++ создание БД "torrentmonitor" +++

mysql> create database torrentmonitor;
Query OK, 1 row affected (0.01 sec)

+++ выбор БД для работы +++

mysql> use torrentmonitor;
Database changed

+++ импорт в БД +++

mysql> source /opt/share/www/TM/db_schema/mysql.sql
Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.82 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 18 rows affected (0.00 sec)
Records: 18  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 10 rows affected (0.01 sec)
Records: 10  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 23 rows affected (0.00 sec)
Records: 23  Duplicates: 0  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.03 sec)

Query OK, 0 rows affected, 1 warning (0.01 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

+++ выход +++

mysql> \q
Bye

+++ рестарт сервиса +++

~ # /opt/etc/init.d/S70mysqld restart
 Shutting down mysqld...              done. 
 Starting mysqld...              done. 

+++ доустановка необходимых пакетов +++

~ # opkg install php5-mod-pdo
Installing php5-mod-pdo (5.6.18-1) to root...
Downloading ftp://192.168.1.1/ENTWARE/packages/php5-mod-pdo_5.6.18-1_keenbe.ipk.
Configuring php5-mod-pdo.
~ # opkg install php5-mod-pdo-mysql
Installing php5-mod-pdo-mysql (5.6.18-1) to root...
Downloading ftp://192.168.1.1/ENTWARE/packages/php5-mod-pdo-mysql_5.6.18-1_keenbe.ipk.
Configuring php5-mod-pdo-mysql.

+++ перезапуск сервера +++

~ # /opt/etc/init.d/S80lighttpd restart
 Shutting down lighttpd...              done. 
 Starting lighttpd...              done. 
~ # 
Свернуть
K Giga II NDMSv.2.06C/2.11D/2.15A + Entware-Keenetic/Entware&Gentoo; K DSL NDMSv.2.05C/2.11D + Entware-Keenetic/Entware&Debian 8.11/9.6

Yrzorg
Сообщения: 82
Зарегистрирован: 05 окт 2015, 13:23

Сообщение Yrzorg » 10 апр 2016, 13:33

попробовал поставить заново на чистую систему и в my.cnf ничего не менял- тож самое, не стартует сервер
 

Код: Выделить всё

~ # opkg install mysql-server
Installing mysql-server (5.1.73-2) to root...
Downloading http://entware.zyxmon.org/binaries/mipsel/mysql-server_5.1.73-2_mipselsf.ipk.
Installing libmysqlclient (5.1.73-2) to root...
Downloading http://entware.zyxmon.org/binaries/mipsel/libmysqlclient_5.1.73-2_mipselsf.ipk.
Installing zlib (1.2.8-1) to root...
Downloading http://entware.zyxmon.org/binaries/mipsel/zlib_1.2.8-1_mipselsf.ipk.
Installing libncursesw (6.0-1) to root...
Downloading http://entware.zyxmon.org/binaries/mipsel/libncursesw_6.0-1_mipselsf.ipk.
Installing libreadline (6.3-1) to root...
Downloading http://entware.zyxmon.org/binaries/mipsel/libreadline_6.3-1_mipselsf.ipk.
Configuring zlib.
Configuring libmysqlclient.
Configuring libncursesw.
Configuring libreadline.
Configuring mysql-server.
~ # mysql_install_db --datadir=/opt/var/mysql --basedir=/opt --force
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/opt/bin/mysqladmin -u root password 'new-password'
/opt/bin/mysqladmin -u root -h Keenetic_Ultra password 'new-password'

Alternatively you can run:
/opt/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt ; /opt/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /opt/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/scripts/mysqlbug script!

~ # /opt/etc/init.d/S70mysqld start
 Starting mysqld...              done.
~ # mysqladmin -u root password "test123"
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/opt/var/run/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/opt/var/run/mysqld.sock' exists!
Свернуть
Keenetic Ultra II+Entware
NDMS 3.7


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 7 посетителей :: 1 зарегистрированный, 0 скрытых и 6 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33

Сейчас этот форум просматривают: Yandex [Bot] и 6 гостей