LINUX.ORG.RU
ФорумAdmin

Не могу запустить исполняемый php скрипт

 , ,


0

1

Всем привет. Не уверен, что в нужном разделе создаю тему, поэтому заранее прошу прощения.

В общем, ситуация такая. У меня xubuntu 15.04 (пользуюсь разными версиями уже лет 5-6, но как обыватель). Сегодня встал вопрос, нужен php 5. Первым дело полез смотреть в apt версию php (5.6.4), а хотелка хочет свежее версию. Пошёл на php.net и скачал исходники. Почитал мануал как устанавливать из исходников. Осилил, поставил.

chmod +x script.php
./script.php

и тут начинается:

#!/usr/local/bin/php: Нет такого файла или каталога

я сделал симлинк /bin/php, ситуация такая же.

rtfmил по полной программе, везде пишут, что необходимо в $PATH добавить путь к папке с php. Сказано - сделано. В .bash_profile добавил export php=путь до php, не помогает.

PS: Если php ставить из репозитория, то скрипт начинает нормально работать.

Пошёл на php.net и скачал исходники. Почитал мануал как устанавливать из исходников. Осилил, поставил.

Не надо так делать. Есть ppa.

xtraeft ★★☆☆
()

я сделал симлинк /bin/php, ситуация такая же.

Как делал?

необходимо в $PATH добавить путь к папке с php. Сказано - сделано. В .bash_profile добавил export php=путь до php, не помогает.

Ты не в $PATH добавил, а в $php

melkor217 ★★★★★
()
Ответ на: комментарий от xtraeft

Ставить из исходников уже моветон? На lauchpad я видел php ppa (Ondřej Surý), его даже на askubuntu рекомендуют, но душа требует умения ставить самому, без посторонних реп. Я таки даже попробовал осилить checkinstall, чтобы было в будущем проще обновлять версии php.

AlexandrSE
() автор топика
Ответ на: комментарий от melkor217

Так-то в этой ситуации неправ script.php
Нужно #!/usr/bin/env php

env не видит php

Нет такого файла или каталога

Поправьте, если я не прав, но вроде бы такая конструкция не позволяет вызывать интерпретатор с ключами? Я-то хотел скрипты с отладкой запускать:

#!/usr/local/bin/php -f
AlexandrSE
() автор топика
Ответ на: комментарий от AlexandrSE

Ставить из исходников уже моветон?

Это идиотизм.

xtraeft ★★☆☆
()
Ответ на: комментарий от AlexandrSE

Поправьте, если я не прав, но вроде бы такая конструкция не позволяет вызывать интерпретатор с ключами?

Взял бы, да проверил.

dan@dan-workstation:~/Downloads$ /usr/bin/env python -c 'print 0x13a'
314
melkor217 ★★★★★
()
Ответ на: комментарий от AlexandrSE

ln -s /usr/local/bin/php /bin/php

Ты делаешь неправильно. Надо ln -s <путь_до_настоящего_интерпретатора_пхп> /usr/local/bin/php

PATH=$PATH:/usr/local/php

/usr/local/php это папка с интерпретатором?

melkor217 ★★★★★
()
Последнее исправление: melkor217 (всего исправлений: 1)

А вообще, если ты пытаешься починить пхп всеми подряд способами, не понимая их сути, то может тебе просто поменять путь до интерпретатора в своём script.php?

melkor217 ★★★★★
()
Ответ на: комментарий от melkor217

Взял бы, да проверил.

Из терминала работает, из скрипта не взлетает.

AlexandrSE
() автор топика
Ответ на: комментарий от melkor217

Ты делаешь неправильно. Надо ln -s <путь_до_настоящего_интерпретатора_пхп> /usr/local/bin/php

Правильно я сделал символьную ссылку. У меня пых по-умолчанию в /usr/local/bin лежит. Символьную ссылку в /bin сделал.

/usr/local/php это папка с интерпретатором?

Это моя опечатка. Я добавлял в $PATH /usr/local/bin, хотя он там и так присутствует.

AlexandrSE
() автор топика
Ответ на: комментарий от AlexandrSE

Я добавлял в $PATH /usr/local/bin, хотя он там и так присутствует.

...

Правильно я сделал символьную ссылку. У меня пых по-умолчанию в /usr/local/bin лежит. Символьную ссылку в /bin сделал.

#!/usr/local/bin/php: Нет такого файла или каталога

melkor217 ★★★★★
()

Семь бед - один резет

После перезагрузки, я могу запускать свои php скрипты с шибэнгом

#!/usr/local/bin/php -f
#!/bin/php -f //это симлинк
#! /usr/local/bin/php -f //и даже так

Но конструкция вида

#!/usr/bin/env php -f

по прежнему не работает, видимо env не умеет запускать интерпретаторы с ключами.

melkor217 попробуй запустить этот сценарий из исполняемого файла

#!/usr/bin/env python -d
print 0x13a

У меня вот что выдаёт, хотя пайтон на своём месте.

/usr/bin/env: python -d: Нет такого файла или каталога

AlexandrSE
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.