- Как проверить, есть ли несколько версий PHP, установленных на Ubuntu 12.04 LTS?
- Решение
- Другие решения
- Команда find Linux
- Поиск
- -name: Поиск по имени
- Поиск по расширению
- -not: обратное условие
- Несколько условий вместе
- -o: Логическое или
- Найти и скопировать
- Поиск по типу
- Уровни вложенности
- Поиск по размеру файла
- Поиск по началу имени файла
- Поиск по части имени файла
- -perm: поиск по правам доступа
- -path: поиск путей
- -prune: ограничить глубину
- Исключить директорию из поиска
- linux: search for files of type *.php recently modified
- unixforum.org
- Re: Где лежит интерпретатор php?
- Re: Где лежит интерпретатор php?
- Re: Где лежит интерпретатор php?
- Re: Где лежит интерпретатор php?
- Re: Где лежит интерпретатор php?
- Re: Где лежит интерпретатор php?
- Re: Где лежит интерпретатор php?
- Re: Где лежит интерпретатор php?
Как проверить, есть ли несколько версий PHP, установленных на Ubuntu 12.04 LTS?
Как узнать, установлены ли в моей системе php5.3 и php5.5? Как удалить php5.3, если он есть, и настроить Apache2 для работы с php5.5?
Решение
Поскольку у вас есть среда Linux, вы можете запустить ее на своей консоли:
И затем для всего, что похоже на двоичный файл PHP, получите версию. Вывод для меня выше:
/home/xx/Development/Personal/Project1/webapp/bin/phpunit /home/xx/Development/Personal/Project1/webapp-backup/vendor/bin/phpunit /home/xx/Development/Personal/Project2/app/vendor/bin/phpunit /home/xx/php-threaded/bin/php /home/xx/php-threaded/bin/php-cgi /home/xx/php-threaded/bin/php-config /home/xx/php-threaded/bin/phpize /usr/bin/php /usr/bin/php5 /usr/local/bin/php-cgi /usr/local/bin/php-config /usr/local/bin/php53 /usr/local/bin/phpize /usr/sbin/php5dismod /usr/sbin/php5enmod /usr/sbin/php5query
Из них есть несколько, которые выглядят как бинарные файлы PHP. Итак, давайте получим версию для каждого:
/home/xx/php-threaded/bin/php -v /usr/bin/php -v /usr/bin/php5 -v /usr/local/bin/php53 -v
Это даст вам версии PHP, которые вы установили.
Я бы не стал удалять старую версию, это может привести к удалению файлов, которые остановят работу. Вы можете просто настроить консольную версию или версию Apache, чтобы использовать нужную версию.
В ответ на ваш дополнительный вопрос: кажется, вы следили инструкции здесь добавить неофициальное репо в вашу версию Ubuntu, так как стандартное репо не поддерживает 5.5.
Мы вместе обнаружили, что первым делом можно было обновить Apache с 2.2 до 2.4:
sudo apt-get upgrade apache2
Следует отметить, что это Можно потребовать некоторого восстановления vhost, так как некоторые директивы Apache изменены в этой версии. Как только вы это сделаете, вы можете получить новую версию mod_php :
sudo apt-get install libapache2-mod-php5
Другие решения
Чтобы проверить установленные версии, наберите:
в вашем терминале, чтобы перейти в папку конфигурации ваших установок PHP, а затем введите:
Выходными данными будут папки, соответствующие версиям, установленным на вашем компьютере. В моем случае команда выводит:
я использую следующую команду для просмотра установленных версий PHP в Ubuntu:
sudo update-alternatives --list php
Вы можете запустить это на своей консоли:
Я использую следующее для просмотра установленных версий PHP в Ubuntu:
sudo dpkg —list | grep ‘ php9\.2 ‘
Команда find Linux
find это мощный инструмент для работы с файлами.
С его помощью можно задавать различные составные условия для дальнейших действий над файлами.
Часто ипользуется как первый шаг перед копированием, перемещением, удалением, изменением файлов, соответсвующих определённым условиям.
В этой статье вы можете познакомится с основами применения find. Про применение find совместно с grep , sed , xargs и другими утилитами вы можете прочитать в статье «Продвинутые методы работы с find»
Поиск
Найти и вывести на экран все файлы в директории
find
find .
find . -print
-name: Поиск по имени
Найти по полному имени в текущей директории
find . -name ‘heihei.log‘
find . -iname ‘heihei.log‘
Поиск по расширению
Найти по расширению файла с помощью wildcard *
Ищем в /usr/share/doc все pdf файлы
find /usr/share/doc -name ‘*.pdf‘
-not: обратное условие
Найти в текущей директории все файлы кроме php
find . -not -name ‘*.php‘
find . ! -name ‘*.php‘
Несколько условий вместе
Найти все файлы, которые начинаются с log но не имеют расширения .txt
find . -name «log*» ! -name ‘*.txt‘
-o: Логическое или
Найти либо .html либо .php файлы
find . -name ‘*.html‘ -o -name ‘*.php‘
Найти и скопировать
Найти и сразу скопировать в текущую директорию
find /usr/share/doc -name ‘*.pdf‘ -exec cp <> . \;
Найти в текущей директории
Удалить из текущей директории
find -name ‘*.pdf‘ -delete
Поиск по типу
Чтобы найти только файлы определённого типа выполните find с опцией type.
Например, что найти все ссылки в директории /etc
Подробнее о файлах в Linux читайте в статье «Типы файлов в Linux»
Уровни вложенности
Найти все ссылки только на верхнем уровне вложенности
find /etc -maxdepth 1 -type l
Поиск по размеру файла
Filesystem Size Used Avail Use% Mounted on /dev/sda1 1014M 194M 821M 20% /boot
Найти обычные файлы определённого размера
Чтобы найти обычные файлы нужно использовать -type f
find /boot -size +20000k -type f
find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img /boot/initramfs-3.10.0-1160.el7.x86_64.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
Файлы бывают следующих типов:
— : regular file
d : directory
c : character device file
b : block device file
s : local socket file
p : named pipe
l : symbolic link
find /boot -size +10000k -type f
find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img /boot/initramfs-3.10.0-1160.el7.x86_64.img /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
То же самое плюс показать размер файлов
find /boot -size +10000k -type f -exec du -h <> \;
find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied 60M /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img 21M /boot/initramfs-3.10.0-1160.el7.x86_64.img 13M /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img 21M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img 14M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
Поиск по началу имени файла
Обратите внимание, что в find, в отличие от grep , ставить перед началом названия никаких символов не нужно.
find -name ‘topb*‘
Поиск по части имени файла
Найти в проекте topbicyle все директории с qa в названии
find topbicycle/ -name ‘*qa*‘ -type d
-perm: поиск по правам доступа
find . -type f -perm 0600
find . -type f ! -perm 0600
-path: поиск путей
Если мне нужно посмотреть содержимое директорий /code/php и /code/python
Пример укороченного результата
-prune: ограничить глубину
С помощью path можно посмотреть содержимое всех поддиректорий code на букву p /code/p*
Если нужно посмотреть только поддиректории верхнего уровня — используется -prune
find . -path «./code/p*» -prune
Получили только поддиректории без их содержимого
Исключить директорию из поиска
Из предыдущего параграфа понятно, что с помощью prune можно исключить директорию из поиска.
Пример: найти в ./code все файлы, заканчивающиеся на index.php но проигнорировать поддиректории на p, то есть в директориях python и php не искать.
find ./code -path «./code/p*» -prune -false -o -name «*index.php»
./code/js/errors/index.php ./code/js/index.php ./code/c/index.php ./code/cpp/index.php ./code/go/pointers/index.php ./code/go/declare_variable/index.php ./code/go/constants/index.php ./code/go/index.php ./code/java/index.php ./code/dotnet/index.php ./code/ruby/index.php ./code/theory/index.php ./code/index.php
-false нужен чтобы не выводить проигнорированные директории.
Ещё один способ исключить директорию из поиска
find ./code -name «*.php« -not -path «./code/p*»
linux: search for files of type *.php recently modified
Note that since the expression is evaluated by find from left to right you must specify the -name test before the -printf action.
See this manpage for details about tests, actions and how find evaluates your expression.
find . -type f -name '*.php' -printf '%TY-%Tm-%Td %TT %p\n' | sort
You can find more options in the manfile of find .
find . -type f -mtime -n -name '*.php' | sort
where n is the number of days a file exists. For example
find . -type f -mtime -1 -name '*.php' | sort
should return all files that are less than a day old. That is useful if you want to filter you results.
Explanation: Use unix command find with -type flag and regex for .php end of file and -ctime for creation time
The find utility recursively descends the directory tree for each path listed, evaluating an expression (composed of the ‘primaries’ and ‘operands’) in terms of each file in the tree.
Solution: find . -name «*\.php» -type f -mtime -4w — which means in my current directory find all the php combination names in type file that were created in the last 4 weeks.
Extra Reading: According to documentation
-type t True if the file is of the specified type. Possible file types are as fol- lows: b block special c character special d directory f regular file l symbolic link p FIFO s socket -mtime n[smhdw] If no units are specified, this primary evaluates to true if the difference between the file last modification time and the time find was started, rounded up to the next full 24-hour period, is n 24-hour periods. If units are specified, this primary evaluates to true if the difference between the file last modification time and the time find was started is exactly n units. Please refer to the -atime primary description for informa- tion on supported time units.
unixforum.org
На будущее: whereis -b имя_искомой_команды либо locate имя_искомой_команды (можно ещё так: locate имя | grep bin ).
rm_ Сообщения: 3340 Статус: It’s the GNU Age ОС: Debian Контактная информация:
Re: Где лежит интерпретатор php?
Сообщение rm_ » 12.12.2007 22:05
Re: Где лежит интерпретатор php?
только учтите, что
php, php4, php5, php-cgi, php-cli и т.п. — могут быть разными файлами, и, возможно, с разными настройками,
сам недавно на это напоролся.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
aim Бывший модератор Сообщения: 749 Статус: Санкт-Петербургский LUG ОС: GNU/Linux Контактная информация:
Re: Где лежит интерпретатор php?
Сообщение aim » 13.12.2007 12:05
нигде. вам нужно его отдельно поставить (Пакет называется php5-cli).
лежать будет как /usr/bin/php5
Санкт-Петербургская группа пользователей GNU/Linux https://spblug.org/
Адрес для электронных писем: aim@digital-activity.org
serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:
Re: Где лежит интерпретатор php?
Сообщение serzh-z » 13.12.2007 12:31
Re: Где лежит интерпретатор php?
Сообщение TweeKane » 13.12.2007 21:14
нету там:
# /usr/bin/php
bash: /usr/bin/php: Нет такого файла или каталога
MadDog Бывший модератор Сообщения: 2298 Статус: Добрый банщик Контактная информация:
Re: Где лежит интерпретатор php?
Сообщение MadDog » 13.12.2007 23:23
aim Бывший модератор Сообщения: 749 Статус: Санкт-Петербургский LUG ОС: GNU/Linux Контактная информация:
Re: Где лежит интерпретатор php?
Сообщение aim » 13.12.2007 23:43
при установленном php5-cli нет /usr/bin/php 😉
на самом деле это в пакете какая-то проблема
если поставить php4-cli то появляется /etc/alternatives/php и уже тогда можно сконфигурить его так чтобы /usr/bin/php указывал на php5.
вот только что на чистой инсталляции спецом проверил.
Санкт-Петербургская группа пользователей GNU/Linux https://spblug.org/
Адрес для электронных писем: aim@digital-activity.org
MadDog Бывший модератор Сообщения: 2298 Статус: Добрый банщик Контактная информация:
Re: Где лежит интерпретатор php?
Сообщение MadDog » 13.12.2007 23:56
aim
Ставил только php5 (как модуль к апачу, так и cli). Есть у меня и /usr/bin/php, которая является ссылкой на /etc/alternatives/php, которая в свою очередь является ссылкой на /usr/bin/php5.
maddog:[~] % ll /usr/bin | grep php [23:53] lrwxrwxrwx 1 root root 21 2007-04-16 23:52 php -> /etc/alternatives/php -rwxr-xr-x 1 root root 5515168 2007-10-25 01:26 php5
maddog:[~] % ll /etc/alternatives | grep php [23:54] lrwxrwxrwx 1 root root 13 2007-10-29 09:44 php -> /usr/bin/php5 lrwxrwxrwx 1 root root 29 2007-10-29 09:44 php.1.gz -> /usr/share/man/man1/php5.1.gz
P.S. PHP4 у меня на домашнем компе отродясь не стояло. Сразу ставил пятёрку.