не могу заставить работать php с mysql

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

v4567
Сообщения: 162
ОС: Devuan

не могу заставить работать php с mysql

Сообщение v4567 »

Есть linux lfs версии 7.0 Из исходников установлены СУБД mysql версии
mysqld Ver 5.5.17-log for Linux on i686 (Source distribution),
веб-сервер apache версии

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

httpd -v
Server version: Apache/2.4.9 (Unix)
Server built:   Apr  8 2014 19:04:23

и php версии

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

php -v
PHP 5.5.11 (cli) (built: Apr 23 2014 23:04:28)
Copyright © 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright © 1998-2014 Zend Technologies

СУБД работает отлично, завёл пользователя, базу, из mysql клиента подсоединяюсь под этим пользователем и захожу в базу, всё работает нормально.
Веб-сервер работает то же отлично.
Сам модуль php для apach-а работает то же нормально. Создал страничку - <?php echo phpinfo(); ?>
и вот что она выдала по поводу mysql:

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

MySQL driver for PDO     George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
MySQL     Zeev Suraski, Zak Greant, Georg Richter, Andrey Hristov
MySQLi     Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
MySQLnd     Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlьter


при этом по команде php -m модуля для работы с mysql вроде как нет:

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

php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
hash
iconv
json
libxml
mbstring
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]


Папки в /usr/lob/php с модулями вообще нет.

Конфигурировал php вот с такими опциями:

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

./configure --prefix=/usr                \
            --sysconfdir=/etc            \
            --localstatedir=/var         \
            --with-apxs2=/usr/bin/apxs   \
            --datadir=/usr/share/php     \
            --mandir=/usr/share/man      \
            --enable-dba                 \
            --enable-fpm                 \
            --with-fpm-user=apache       \
            --with-fpm-group=apache      \
            --with-config-file-path=/etc \
            --with-zlib                  \
            --enable-bcmath              \
            --with-bz2                   \
            --enable-calendar            \
            --enable-exif                \
            --enable-ftp                 \
            --with-openssl-dir=/usr      \
            --with-gd=/usr               \
            --with-jpeg-dir=/usr         \
            --with-png-dir=/usr          \
            --with-zlib-dir=/usr         \
            --with-freetype-dir=/usr     \
            --with-mysql-sock=/var/run/mysql \
            --enable-sockets             \
            --enable-mbstring


Всё бы было ничего но вот пытаюсь открыть такую страничку:

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

<?php


// Данные для mysql сервера
$dbhost = "localhost"; // Хост
$dbuser = "user"; // Имя пользователя
$dbpassword = "pas"; // Пароль
$dbname = "baza"; // Имя базы данных

// Подключаемся к mysql серверу
$link = mysql_connect($dbhost, $dbuser, $dbpassword);

// Выбираем нашу базу данных
mysql_select_db($dbname, $link);

// Создаём таблицу customer
// т.е. делаем sql запрос
$query = "create table customer (id int(2) primary key auto_increment, name varchar(100), tel varchar(20))";
mysql_query($query, $link);

// Закрываем соединение
mysql_close($link);


?>


и выдаёт мне: Удаленный сервер или файл не найден хотя просто html страницы или страничку вида: <?php echo phpinfo(); ?> открывает отлично.

Смотрю в логи mysql а там вообще нет признака что бы под пользователем заходили, вообще конекта нет. Хотя из mysql клиента захожу нормально.

Вопрос у меня php собран без поддержки mysql?

И ещё один вопрос.

Запускал СУБД mysql и apache в chroot с скинутыми в этот chroot библиотеками и модулем php, так же с библиотеками. Всё работает отлично, правда работу php с mysql не проверял. Судя по работе не в chroot работать не будет, но второй вопрос не в этом. Подскажите пожалуйста при такой работе в chroot php будет работать с библиотеками расположенными в chroot или будет использовать системные библиотеки? Если системные то как заставить php не вылазить из chroot и использовать библиотеки скинутые в chroot?

За помощь заранее благодарен!
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: не могу заставить работать php с mysql

Сообщение MrClon »

Судя по всему у php таки-нет модулей для работы с mysql (на сколько я понимаю актуальные модули для работы с mysql это mysqli или pdo-mysql, модуль mysql уже давно объявлен устаревшим и подлежит выпилу). Хотя честно говоря распарсить то что вы написали довольно трудно.

Зачем вообще LFS на сервере?
Что за «Удаленный сервер или файл не найден»? С чего-бы проблемному php скрипту ругаться такими ошибками? Скопируйте ошибку целиком, попробуйте запустить скрипт из консоли.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21520
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: не могу заставить работать php с mysql

Сообщение Bizdelnick »

Во-первых,
Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL.

Во-вторых, mysql слушает порт 3306?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: не могу заставить работать php с mysql

Сообщение SLEDopit »

v4567 писал(а):
10.05.2014 17:44
при этом по команде php -m модуля для работы с mysql вроде как нет:
Я не знаю как у вас, но обычно php имеет различную конфигурацию для cli и apache, поэтому в командной строке и в apache модули могут различаться, ничего удивительного в этом нет.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
v4567
Сообщения: 162
ОС: Devuan

Re: не могу заставить работать php с mysql

Сообщение v4567 »

Я вообще то хотел поставить форум vbulletin 3.8.7 при наложении 4 патчей и руссификации и вот что он мне написал в браузере при попытке инсталяции:

Strict Standards: Non-static method vB_Shutdown::init() should not be called statically, assuming $this from incompatible context in /data/web/apache/www/sait3.ru/includes/class_core.php on line 2555

Strict Standards: Non-static method vBulletinHook::init() should not be called statically in /data/web/apache/www/sait3.ru/install/init.php on line 212

vBulletin 3.8.7 требуется доступ к функциям MySQL в PHP. Пожалуйста, попросите вашего хостера включить его.

В конфиге vbulletin прописывал mysqli потом mysql результат не менялся.

Тогда я ту страничку и соорудил, что бы проверить есть хотя бы конект с базой, но судя по логам mysql конекта не было.
Какие функции mysqli для работы с СУБД mysql я не знаю, программировать на php я не умею.
Страничку проверочную я скопировал в интернете.





Во-вторых, mysql слушает порт 3306?

У меня в mysql работа через сеть закрыта, соединиться можно через сокеты. Через сокеты соединяюсь нормально, клиентом mysql всё работает.


Да забыл сказать, у меня веб-сервер на котором хотел поставить форум vbulletin и СУБД mysql на одном физическом сервере, поэтому работа с mysql через сеть мне не нужна.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21520
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: не могу заставить работать php с mysql

Сообщение Bizdelnick »

v4567 писал(а):
10.05.2014 23:32
У меня в mysql работа через сеть закрыта, соединиться можно через сокеты.

А фигли тогда
v4567 писал(а):
10.05.2014 17:44
$dbhost = "localhost"; // Хост
?

v4567 писал(а):
10.05.2014 23:32
Какие функции mysqli для работы с СУБД mysql я не знаю, программировать на php я не умею.

PHP - не из тех языков, которые надо знать. Документация же есть:
http://php.net/manual/ru/function.mysql-connect.php
http://www.php.net/manual/ru/mysqli.summary.php
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
v4567
Сообщения: 162
ОС: Devuan

Re: не могу заставить работать php с mysql

Сообщение v4567 »

А фигли тогда
Цитата(v4567 @ 10th May 2014 - в 17:44)
$dbhost = "localhost"; // Хост


Открыл, но ничего не изменилось. Через порт 3306 никакой активности нет. Пробовал вместо localhost прописать 127.0.0.1 но активности нет.

Если через сокеты, то что тогда там вместо localhost писать?

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21520
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: не могу заставить работать php с mysql

Сообщение Bizdelnick »

v4567 писал(а):
10.05.2014 23:51
Если через сокеты, то что тогда там вместо localhost писать?


Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
v4567
Сообщения: 162
ОС: Devuan

Re: не могу заставить работать php с mysql

Сообщение v4567 »

не помогает то что написано по ссылке, наверное в версии php 5.5 функций mysql_connect нет
По логам mysql конекта нет.
По логам apache вот что:
10.0.0.2 - - [10/May/2014:23:03:37 +0300] "GET / HTTP/1.1" 500 - "-" "Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.15"
[Sat May 10 23:03:37.677995 2014] [:error] [pid 6847:tid 2980223856] [client 10.0.0.2:44834] PHP Fatal error: Call to undefined function mysql_connect() in /data/web/apache/www/sait4.ru/index.php on line 11

Call to undefined function mysql_connect() нет такой функции......!!
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: не могу заставить работать php с mysql

Сообщение MrClon »

Дык, выпилили модуль mysql в php5.5, вроде это уже выяснили.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21520
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: не могу заставить работать php с mysql

Сообщение Bizdelnick »

MrClon писал(а):
11.05.2014 02:21
выпилили модуль mysql в php5.5

Не выпилили, а объявили устаревшим. Вполне вероятно, он просто не собирается по умолчанию. Лучше, конечно, использовать mysqli.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
v4567
Сообщения: 162
ОС: Devuan

Re: не могу заставить работать php с mysql

Сообщение v4567 »

Лучше, конечно, использовать mysqli.


Так как его использовать! В конфиге vbulletin я прописываю mysqli но не помогает, результат тот же.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21520
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: не могу заставить работать php с mysql

Сообщение Bizdelnick »

Проверочный скрипт исправьте на mysqli. Ссылку на документацию я давал.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: