Поднимаем PHP/Nginx под WSL(Ubuntu)

Устанавливаем nginx

sudo apt install nginx

По умолчанию создается конфигурация с пользователем www-data. Меняем его на текущего пользователя.

sudo sed -i 's/www\-data/seligoroff/g' /etc/nginx/nginx.conf

Устанавливаю php

sudo apt install php7.4
sudo apt install php7.4-dev
sudo apt install php7.4-mysql
sudo apt install php7.4-zip
sudo apt install php7.4-fpm

По умолчанию php-fpm тоже сконфигурирован для пользователя www-data.

seligoroff@NB-SELIVANOV:~$ grep www-data /etc/php/7.4/fpm/pool.d/www.conf
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data

Заменяем на текущего пользователя.

sudo sed -i 's/www\-data/seligoroff/g' /etc/php/7.4/fpm/pool.d/www.conf

Запускаем сервисы

sudo service php7.4-fpm start
sudo service nginx start

Создаю laravel-проект.

composer create-project laravel/laravel mylaravel

Генерируем ключ приложения

cd mylaravel/
php artisan key:generate

Создаем конфигурационный файл /etc/nginx/sites-available/test.conf

server {
    listen 80;
    root /home/seligoroff/mylaravel/public;
    index index.php index.html index.htm index.nginx-debian.html;
    server_name test.test;
 
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
 
    index index.php;
 
    charset utf-8;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
 
    location ~ \.php$ {
        fastcgi_buffering off;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
 
    location ~ /\.ht {
        deny all;
    }
}

Добавляем конфиг в используемые и рестартуем nginx:

sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/
sudo service nginx restart

На windows добавляем в файле hosts

127.0.0.1 test.test

Заходим в браузере под указанным доменом:

Проблемы с Callgraph

После установки xhprof и Graphviz на windows столкнулся с проблемой. При обращении к Callgraph выдавалась ошибка:

Format: "png" not recognized. Use one of:

Вылечил запуском командной строки от имени администратора и выполнением команды:

dot -c

GIT fatal: inflateInit: out of memory

На одном из серверов при попытке пушнуть взятый под git код возникла ошибка
Delta compression using up to 24 threads.<br>fatal: inflateInit: out of memory (no message)

Помогло сокращение трэдов упаковки

git config --global pack.threads 1

PMBOK 9 Knowledge Areas to 5 Process Group Mapping

Project Management Process Groups
Knowledge Areas Initiating Process Group Planning Process Group Executing Process Group Monitoring & Controlling Process Group Closing Process Group
4. Project Integration Management 4.1 Develop Project Charter 4.2 Develop Project Management Plan 4.3 Direct and Manage Project Execution 4.4 Monitor and Control Project Work
4.5 Perform Integrated Change Control
4.6 Close Project or Phase
5. Project Scope Management 5.1 Collect Requirements
5.2 Define Scope
5.3 Define WBS
5.4 Verify Scope
5.5 Control Scope
6. Project Time Management 6.1 Define Activities
6.2 Sequence Activities
6.3 Estimate Activity Resources
6.4 Estimate Activity Durations
6.5 Develop Schedule
6.6 Control Schedule
7. Project Cost Management 7.1 Estimate costs
7.2 Determine Budget
7.3 Control Costs
8. Project Quality Management 8.1 Plan Quality 8.2 Perform Quality Assurance 8.3 Perform Quality Control
9. Project Human Resource Management 9.1 Develop Human Resource Plan 9.2 Acquire Project Team
9.3 Develop Project team
9.4 Manage Project team
10. Project Communications Management 10.1 Identify Stakeholders 10.2 Plan Communications 10.3 Distribute Information
10.4 Manage Stakeholder Expectations
10.5 Report Performance
11. Project Risk Management 11.1 Plan Risk Management
11.2 Identify Risks
11.3 Perform Qualitative Risk Analysis
11.4 Perform Quantitative Risk Analysis
11.5 Plan Risk Responses
11.6 Monitor and Control Risks
12. Project Procurement Management 12.1 Plan Procurements 12.2 Conduct Procurements 12.3 Administer Procurements 12.4 Close Procurements

Read more from PMBOK, Process Groups

SoapClient не передает заголовки Basic Authentication

Столкнулся на проекте с необычной штукой. SOAP-сервер находился под http-аутентификацией. На development машинах код работал без ошибок. Но при выгрузке на production стал давать при инициализации клиета ошибку:

SOAP-ERROR: Parsing WSDL: Couldn’t find  

 Поставил сниффер на машину с сервером. Оказалось, что  SoapClient, которому в options задавались логин и пароль не передавал заголовок Authentication. Причем было это, как я уже сказал, только на production сервере, где стояла Gentoo. Проблема была решена сменой версии php

5.3.8-pl0-gentoo на 5.3.25-pl0-gentoo

Вероятно, к этой версии баг был пропатчен.

WordPress 2.6.1 под php 5.3

Пришлось перетаскивать старый сайт сделанный на WordPress 2.6.1. Тут  же повылетали сообщения, что передача по ссылке уже запрещена. Обновляться до новой версии 3 не хотелось, поскольку может обернуться необходимостью тратить еще кучу времени на фиксирование несовместимостей, а времени особо нет.

Починил пока при помощи sed:

find -name *.php -exec sed -i 's/=&amp;/=/g' {} ;

Осталось  пофиксить ругань на eregi в админке, а так, вроде запустилось. 

Ошибка в меню Joomla

При переходе на php5.3 сайт на старой Joomla стал выкидывать warning.

modMainMenuHelper::buildXML() expected to be a reference, value given

Лечится простым фиксом  в /modules/mod_mainmenu/helper.php. Меняем:

function buildXML(&$params)

на

 function buildXML($params)