Повышение версии PHP в Ubuntu 14.04

Понадобилось однажды на Ubuntu Server 14.04 LTS повысить версию PHP 5.5.9 до 5.6, обычное обновление компонентов системы не помогло:

sudo apt-get update
sudo apt-get upgrade

Можно попробовать обновить систему до 16.04 или выше как я описывал в статье Обновление Ubuntu 14.04 до 16.04. Вместе с системой будет обновлен и PHP.

Если же обновление системы не удается выполнить, то можно добавить сторонний источник с PHP:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

И установить из него нужную версию, например PHP 5.6:

sudo apt-get install php5.6 php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml

Так как установленных версий может быть несколько, отключим старую и активируем установленную:

sudo a2dismod php5
sudo a2enmod php5.6
sudo service apache2 restart

Аналогично можно установить PHP 7.2:

sudo apt-get install php7.2
sudo a2dismod php5.6
sudo a2enmod php7.2
sudo service apache2 restart

Или PHP 7.0:

sudo apt-get install php7.0
sudo a2dismod php7.2
sudo a2enmod php7.0
sudo service apache2 restart

Установка Apache JMeter в Ubuntu

Apache JMeter — инструмент для нагрузочного тестирования.

Для Apache JMeter необходимо установить Java, смотрите мою статью — Установка Java в Linux.

Для примера установлю Apache JMeter в Ubuntu Desktop 18.04.

После того как Java установлен, скопируем ссылку на архив с последней версией Apache JMeter с официального сайта http://jmeter.apache.org/download_jmeter.cgi и скачаем его:

wget http://apache.volia.net//jmeter/binaries/apache-jmeter-4.0.tgz

Распакуем архив:

tar -xf apache-jmeter-4.0.tgz

Запустим:

cd apache-jmeter-4.0/bin/
./jmeter

После запуска отобразилось сообщение, что в графическом режиме Apache JMeter можно создавать тесты, а выполнять их можно только из терминала, например так:

jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

Кстати Apache JMeter в Windows запускается через файл jmeter.bat.

Установка Magento в Ubuntu

На тесте установлю Magento в Ubuntu Server 16.04 & PHP 7.

Сначала обновим систему и установим необходимые компоненты:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2 php mysql-server mysql-client openssl libcurl3 php-curl php-gd php-mcrypt php-xml php-intl php-zip php-mbstring php-soap php-mysql php-cli php-json libapache2-mod-php php-xsl composer

Откроем файл конфигурации PHP в текстовом редакторе:

sudo nano /etc/php/7.0/apache2/php.ini

И установим или убедимся что memory_limit не меньше 512M:

memory_limit = 512M

Активируем необходимые модули:

sudo a2enmod rewrite
sudo phpenmod mcrypt

В конфигурации apache2 добавим сайт или отредактируем стандартный:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Добавим внутри тегов VirtualHost параметры:

<Directory /var/www/html/magento_test>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>

Перезапустим apache2 чтобы применить изменения:

sudo service apache2 restart

Подключимся к MySQL серверу, создадим базу и пользователя:

mysql -u root -p
CREATE DATABASE magento;
CREATE USER magento@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON magento.* TO magento@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit

Скачаем архив с последней версией Magento и распакуем его:

cd /tmp/
wget https://github.com/magento/magento2/archive/2.2.3.tar.gz
tar xzvf 2.2.3.tar.gz

Переместим файлы в директорию веб-сервера:

sudo mv magento2-2.2.3 /var/www/html/magento_test

Выполним команду:

cd /var/www/html/magento_test
sudo composer install

Установим на файлы права, владельца и группу под которым работает веб-сервер:

cd /var/www/html/magento_test
sudo find var vendor pub/static pub/media app/etc -type f -exec chmod u+w {} \;
sudo find var vendor pub/static pub/media app/etc -type d -exec chmod u+w {} \;
sudo chmod u+x bin/magento
sudo chown -R www-data:www-data /var/www/html/magento_test/

Откроем в браузере http://SERVER/magento_test и продолжим процесс установки следуя инструкциям, запомним логин/пароль и «Magento Admin Address» так как по нему будет открываться админ панель.

После установки посмотрим где находится php чтобы правильно указать путь в cron заданиях (обычно он в /usr/bin/php):

which php

Откроем crontab:

sudo crontab -u www-data -e

И добавим задания:

* * * * * /usr/bin/php /var/www/html/magento_test/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/html/magento_test/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/html/magento_test/update/cron.php >> /var/www/html/magento_test/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/html/magento_test/bin/magento setup:cron:run >> /var/www/html/magento_test/var/log/setup.cron.log

На этом установка Magento завершена.

Смотрите также:
Решение ошибки «Autoload error» при установке Magento
Использование и настройка CRON

Решение ошибки «Autoload error» при установке Magento

Однажды устанавливал Magento в Ubuntu и заметил в браузере следующую ошибку:

Autoload error

Также присутствовали куски кода, в зависимости от открытой страницы.

В моем случае ошибка возникала из-за неустановленного libapache2-mod-php, установил его командой:

sudo apt-get install libapache2-mod-php

После это ошибка не появлялась и я продолжил установку Magento.

Обновление phpBB 3.1.x до phpBB 3.2.x

На тесте обновлю форум phpBB 3.1.9 до версии phpBB 3.2.2.

Системные требования phpBB 3.2 при необходимости можно посмотреть тут https://www.phpbb.com/support/docs/en/3.2/ug/

Обязательно делаем резервную копию базы и файлов форума.

Рекомендую выполнить обновление на тестовом виртуальном сервере, запустив там копию форума из резервных копий, так как в моем случае возникали ошибки и на их устранение ушло время, а потом уже можно аналогично быстро обновить на основном.

Приступим к обновлению, скачиваем архив с новой версией phpBB 3.2.x и распаковываем его:

wget https://www.phpbb.com/files/release/phpBB-3.2.2.zip
unzip phpBB-3.2.2.zip

В распакованных данных форума удалим файл config.php и директории files/, images/, store/.

В данных phpBB что находятся на веб сервере удалим всё кроме директорий ext/, files/, images/, store/ и файла config.php.

Переместим оставшиеся скачанные данные в директорию с данными форума, согласимся на перезапись файла в директории ext/.

Если изменятся права на файлы и владелец, то например можно указать их так:

sudo chown -R www-data:www-data /var/www/forum/

Если база данных форума большая, то можно выполнить команду в корневой директории форума:

php ./bin/phpbbcli.php db:migrate --safe-mode

Откроем в браузере адрес форума добавив в конце /install/app.php/update или /install/database_update.php, выберем вкладку «Update», выберем «Update database only», запустим процесс обновления и дождемся завершения.

После успешного обновления удалим директорию install:

rm install

Смотрите также мои статьи:
Решение ошибки «A module already exists» и «The installer detected a timeout» при обновлении phpBB
Импорт и экспорт MySQL баз данных
Обновление phpBB 3.1.8 до phpBB 3.1.9
Обновление phpBB 3.0.x на phpBB 3.1.x
Прочее о phpBB

Решение ошибки «A module already exists» и «The installer detected a timeout» при обновлении phpBB

Обновлял однажды phpBB 3.1.9 до версии phpBB 3.2.2 и заметил следующую ошибку:

The installer detected a timeout
The installer has detected a timeout, you may try to refresh the page, which may lead to data corruption. We suggest that you either increase your timeout settings or try to use the CLI.

Очистил таблицу «phpbb_migrations» в базе форума:

TRUNCATE TABLE phpbb_migrations;

И снова запустил обновление, но получил уже другую ошибку:

A module already exists: UCP_AUTH_LINK_MANAGE

Стандартный модуль Profile естественно был установлен, его можно было отключить, но не удалить.
Поэтому, я нашел его в таблице «phpbb_modules» и удалил, тем самым заставив скрипт обновления думать что он не установлен:

SELECT * FROM `phpbb_modules` WHERE `module_langname` LIKE 'UCP_AUTH_LINK_MANAGE';

После продолжения обновления заметил еще ошибку:

A module already exists: ACP_CONTACT_SETTINGS

Модуль Contact даже не был установлен, после этого я также нашел его в таблице и удалил, а также нашел и удалил еще раз UCP_AUTH_LINK_MANAGE, так как скрипт обновления его восстановил:

SELECT * FROM `phpbb_modules` WHERE `module_langname` LIKE 'ACP_CONTACT_SETTINGS';
SELECT * FROM `phpbb_modules` WHERE `module_langname` LIKE 'UCP_AUTH_LINK_MANAGE';

После удаления модулей из таблицы «phpbb_modules» я очистил таблицу «phpbb_migrations»:

TRUNCATE TABLE phpbb_migrations;

Запустил обновление phpBB и оно завершилось успешно.

Смотрите также:
Обновление phpBB 3.0.x на phpBB 3.1.x

Решение PHP Warning «Permission denied /var/cpanel/php/sessions/ea-php56/»

Однажды обновил EasyApache3 на EasyApache4 в cPanel и заметил в логах PHP следующее:

[29-Mar-2018 15:54:45 UTC] PHP Warning:  Unknown: open(/var/cpanel/php/sessions/ea-php56/sess_3d96o7nnlnnr473p8619vqkdm1, O_RDWR) failed: Permission denied (13) in Unknown on line 0
[29-Mar-2018 15:54:45 UTC] PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/cpanel/php/sessions/ea-php56) in Unknown on line 0

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

Чтобы устранить это предупреждение, можно открыть полный доступ для всех:

chmod 777 /var/cpanel/php/sessions/ea-php56

Либо открыть конфигурацию PHP, например в редакторе nano:

nano /opt/cpanel/ea-php56/root/etc/php.ini

Найти:

session.save_path = "/var/cpanel/php/sessions/ea-php56"

И изменить на:

session.save_path = "/tmp"

Что раньше и было на старом EasyApache3 в конфигурации PHP /usr/local/lib/php.ini.

После этого предупреждение не появлялось.

Смотрите также:
Миграция с EasyApache 3 на EasyApache 4

Установка и использование HTTrack в Linux

HTTrack — офлайн-браузер, позволяющий загружать веб-сайты на локальный компьютер.

Переключимся на root пользователя:
su

Команда установки в Ubuntu/Debian:

apt-get install httrack

Команда установки в CentOS:

yum install httrack

Создадим отдельную директорию и перейдем в неё чтобы при скачивании файлы не разбросались по текущей:

mkdir sitename
cd sitename

Запустим скачивание сайта:

httrack sitename.com

Если операционная система Linux с графическим интерфейсом, то можно установить WebHTTrack который имеет графический интерфейс:

apt-get install webhttrack

Как изменить тему WordPress через MySQL

Чтобы изменить тему WordPress через MySQL для начала посмотрим какая тема указана на данный момент, для этого выполним SQL запрос через phpMyAdmin или MySQL клиент:

SELECT * FROM wp_options
WHERE option_name = 'template'
OR option_name = 'stylesheet'
OR option_name = 'current_theme';

Далее посмотрим какие темы присутствуют в директории /wp-content/themes/.

Например для смены на стандартную тему Twenty Fifteen, выполним три SQL запроса:

UPDATE wp_options SET option_value = 'twentyfifteen' WHERE option_name = 'template';
UPDATE wp_options SET option_value = 'twentyfifteen' WHERE option_name = 'stylesheet';
UPDATE wp_options SET option_value = 'Twenty Fifteen' WHERE option_name = 'current_theme';

Как отключить плагин WordPress через MySQL

Чтобы отключить все плагины WordPress через MySQL необходимо:

1) Обязательно сделать резервную копию базы данных.

2) Открыть phpMyAdmin или MySQL клиент из терминала:

mysql -u USER -p

3) Выполнить SQL запрос (при необходимости указать правильный префикс wp_):

UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

После этого все плагины будут отключены и их можно вновь поочередно активировать в панели администратора.

Можно также временно отключить плагин переименовав директорию с его файлами, плагины находятся в директории /wp-content/plugins/.