Its bad, and will never work well for any game larger than single player. Basically php is scripted single threaded language, meaning it will launch script, execute and die on every request. Second - php is slow by its nature(not just php, but also python, ruby, etc) so even in very well optimized environment and well written scripts you will never achieve good response rate for your multiplayer game. Also you should understand - there are 2 parts of networking:
First - replication, which is really difficult part and most reasonable way to do this - use UE’s dedicated server which you can build separately from game, and which will serve as your replication(world server). While replicating stuff, you also can do some calculations on server and stand as authority for players, can force client to run any actions you need(google for UE4 Remote procedure call), calculate hit points, do tracing(if you have FPS and have some shooting mechanics)
Second - game server(or you can call it game rules server). This server responsible for any actions that may hurt other player’s gameplay. For ex. you wont allow players to change in memory values to give them 10 potion instead of 1 and, you dont want them to remove cooldowns off these potions to have constant 100% HP. Also this server responsible for any interactions with database, such as item crafting(you want to persist amount of crafted items in database, to be able get it next time user logs in to the game) or any other things you might want to persist for latter usages.
This is some basics for online games. Besides these 2 types of servers you might have some cache servers or in memory storages like redis or memcached to store values that uses more often than others.
As for your questions - you can use your php scripts for anything that does not relates directly to game play mechanics, so having session/room management is totally fine(some big names actually uses php/python for their login/update servers). Basically it will work as a web api server, so any framework like symphony or any other will work well. You dont need any special protocol for this, since there are plugins for UE to do web requests(VaRest plugin) using json format and get responses with player details(id, name, etc) and having UE to use these values later. You also can use your php server as scoreboard. Basically anything that does not require instant response(<30-40 ms) will work just fine.
If you have more specific question - let me know and I will try to answer that