Расширения PHP не загрузятся на запуске Apache

Вы можете использовать метод string join . Все, что вам нужно сделать, это вызвать '_'.join в кортеже триграмм при печати. ​​

print(str('_'.join(entry[0]))+"\t"+str(entry[1]))

Другие примечания:

(1) Вы можете быть более питоническим и генерировать свой listText, используя понимание списка следующим образом: listText = [word.lower() for word in lyrics.split()]

(2) Вы можете использовать setdefault словаря вместо if/else для увеличения / инициализации триграммы следующим образом: freq.setdefault(trigram, 0), а затем для увеличения freq[trigram] += 1 без использования какого-либо блока if / else. Прямо сейчас вы перебираете freq.keys() в поиске trigram в вашем выражении if, которое является постоянным во времени в Python 3 (эквивалентно высказыванию trigram in freq), но линейным во времени в Python 2.

9
задан KdgDev 9 August 2009 в 20:23
поделиться

9 ответов

Чтобы добавить поддержку MySQL и PostgreSQL в PHP, вам нужны не только библиотеки DLL расширения PHP. Вам также потребуются собственные библиотеки MySQL и PostgreSQL. DLL расширения PHP, вероятно, не находят какую-то DLL, от которой они зависят, поэтому они не могут запуститься.

Убедитесь, что у вас установлен клиент MySQL и PostgreSQL, а их библиотеки DLL находятся в каком-нибудь доступном месте.

Пример IE:

  • php_mysql.dll зависит от libmysql.dll

Итак, убедитесь, что PHP может найти libmysql.dll (я считаю, что этот поставляется с двоичным дистрибутивом Windows PHP. Хотя не уверен).

7
ответ дан 4 December 2019 в 15:26
поделиться

Чтобы добавить к совету Пабло Санта Круса. В Windows вы можете включить необходимые библиотеки в среду PATH . (Не обязательно копировать в папку Windows). При загрузке библиотек widows также просматривает каталоги PATH .

Если вы используете стандартный двоичный дистрибутив Win32 с php.net для PHP5.2, то пакет должен содержать все зависимости в корне пакетов , Итак, если вы установили PHP5.2 в C: \ php , добавьте этот каталог в envar PATH . Перезагрузите Apache, и я ожидаю, что расширения загрузятся правильно.

2
ответ дан 4 December 2019 в 15:26
поделиться

У меня возникла проблема с конкретной версией PHP в Windows. Проблема была в libmysql. Я обнаружил ошибку на сайте php.net от кого-то, у кого такая же проблема.

Я использовал предыдущий выпуск php, и libmysql работала. Ознакомьтесь с примечаниями к используемому вами дистрибутиву php. Я думаю, что после конкретной версии они упоминают новую политику в отношении libmysql.

Из того, что вы упомянули, php не может найти расширения. Убедитесь, что вы установили путь в php.ini, который указывает, где расположены расширения, что расширения существуют и что к папке можно получить доступ (разрешения на чтение).

Если все не удается, попробуйте переместить расширение в windows / system32 в попытке найти, что могло бы быть настоящей проблемой.

С уважением,

1
ответ дан 4 December 2019 в 15:26
поделиться

Эти расширения зависят от собственных библиотек, которые предоставляются двоичными дистрибутивами MySQL и PostgreSQL. Установите их и поместите библиотеки, например, в папку apache bin . Это LIBMYSQL.DLL и LIBPQ.DLL соответственно.

Я обычно делаю это вместо того, чтобы загрязнять ими папку Windows / System32 , потому что в моей системе только apache / php является клиентом этих баз данных, а также делает мою установку apache / php более переносимой.

1
ответ дан 4 December 2019 в 15:26
поделиться

По моему опыту, PHP в Windows - это большая проблема. Обычно я заставляю его работать, но всегда приходится много гуглить, проб и ошибок - по крайней мере, для меня.

В конце концов, мне это надоело, и я просто установил Ubuntu Server в виртуальную машину и получил он запускается в считанные минуты. Я не могу сказать, подходит ли вам этот вариант или нет, но если это так, то в долгосрочной перспективе это определенно избавит вас от многих головных болей. Не говоря уже о том, что вы всегда можете перемещать свои виртуальные машины, создавать моментальные снимки и делать все другие причудливые вещи, для которых виртуальные машины подходят.

1
ответ дан 4 December 2019 в 15:26
поделиться

проблема в том, что apache загрузил PHP, но PHP не смог загрузить его расширение (mysql, postgresql, ...). Я думаю, вам следует вводить значения пути в свой файл php.ini в формате unix (не используйте символы обратной косой черты в качестве разделителя каталогов). поэтому в вашем файле php.ini измените это:

extension_dir = "C: / php / ext"

0
ответ дан 4 December 2019 в 15:26
поделиться

У меня была такая же проблема и я попробовал скопировать libmySQL.dll в папку bin apache и это решило проблему (я устанавливаю PHP 5.2.5 x64). Большое спасибо.

-1
ответ дан 4 December 2019 в 15:26
поделиться

У меня тоже была такая же проблема, и я решил ее путем добавления пути bin "PostgreSQL" в переменные системной среды

ПУТЬ: C: \ Program Files \ PostgreSQL \ 8.4 \ bin Вы также можете проверить phpinfo ().

Когда я устанавливаю PostgreSQL, пропущен параметр «Системный путь». Я вручную добавил, а затем перезапустил систему.

0
ответ дан 4 December 2019 в 15:26
поделиться

У меня тоже была эта проблема, и я скопировал соответствующие (.dlls) в systen 32, но у меня все равно не получилось. Я использую 64-битную Windows 7. Чтобы заставить это работать для меня, мне также пришлось скопировать libmysql.dll в каталог ext. Сообщение об ошибке покинуло журнал Apache, и страница была загружена с положительным ответом (соединение установлено).

0
ответ дан 4 December 2019 в 15:26
поделиться